From ffeb131b031d31b9f9dd85d9f06b9e1cb33fbe0c Mon Sep 17 00:00:00 2001 From: Narmada Date: Thu, 29 Jun 2023 16:21:15 +0530 Subject: [PATCH] First Time commit --- .../CheckoutPreActionProvider.cs | 118 ++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 CRM.Visitors/ActionProviders/CheckoutPreActionProvider.cs diff --git a/CRM.Visitors/ActionProviders/CheckoutPreActionProvider.cs b/CRM.Visitors/ActionProviders/CheckoutPreActionProvider.cs new file mode 100644 index 0000000..f2b68d7 --- /dev/null +++ b/CRM.Visitors/ActionProviders/CheckoutPreActionProvider.cs @@ -0,0 +1,118 @@ +using System; +using System.Collections.Generic; +using System.Text.Json; +using System.Threading.Tasks; +using Unibase.Data.Expressions; +using Unibase.Data.Sql; +using Unibase.Platform.Apps.Managers; +using Unibase.Platform.Data; +using Unibase.Platform.Forms.Providers; +using Unibase.Platform.Keys; + +namespace CRM.Visitors.ActionProviders +{ + public class UpdateCheckoutPreAction : BaseFormActionProvider, IFormActionProvider + { + public string ControllerClass + { + get + { + return "Bizgaze.CRM.Visitors.ActionProviders.UpdateCheckoutPreAction"; + + } + } + public string FormActionName + { + get + { + return "UpdateCheckoutPreAction"; + } + } + public string Description + { + get + { + return "Update Checkout PreAction"; + } + } + public UniqueKey UniqueId + { + get + { + return Bizgaze.CRM.Actions.UpdateCheckoutPreAction; + } + } + public int ActionType + { + get + { + return (int)Unibase.Platform.Forms.Enums.FormActionProvider.PreAction; + } + } + + public async Task> ExecuteAsync(ActionRequest srequest, FormActionProviderObject providerObject) + { + + using (var requestTrans = await srequest.BeginTransactionAsync()) + { + var IdValue = providerObject.IdValue; + var arequest = SelectRequest.FromRequest(srequest); + var obj = providerObject.RequestObject; + var returnresponse = new FormActionResponse(); + var defaultPKValue = providerObject.DefaultPKValue; + var stageManager = Unibase.Dependency.DependencyConfig.Resolve(); + dynamic visitorparam = new Dictionary(); + var dictObj = obj as IDictionary; + var connection = GetConnection(srequest); + var req = dictObj as IDictionary; + var code = Convert.ChangeType(dictObj["uniqueid"].ToString(), typeof(string)); + var select = new Unibase.Data.Sql.Select("bizgazecrm_visitors").AllColumns().Where("code", code); + var parameters = new List(); + parameters.Add(new Unibase.Data.Parameter("@code", code)); + var dt = await GetDataTableAsync(arequest, select, parameters); + if (dt.Rows.Count > 0) + { + var visitorManager = Unibase.Dependency.DependencyConfig.Resolve(); + var visitorid = dt.Rows[0]["visitorid"]; + var tenantId = dt.Rows[0]["tenantid"]; + var feedBackJson = Convert.ChangeType(req["feedbackrating"].ToString(), typeof(object)).ToString(); + var feedBackObj = JsonSerializer.Deserialize(feedBackJson); + var comments = feedBackObj.Comments; + var rating = feedBackObj.Rating; + var updateValues = new Dictionary(); + updateValues.Add("checkoutdate", DateTime.Now); + updateValues.Add("createddate", DateTime.Now); + updateValues.Add("uniqueid", code); + updateValues.Add("comments", comments.ToString()); + updateValues.Add("rating", Convert.ToInt32(rating)); + var updateQry = new Update("bizgazecrm_visitorcheckout").Values(updateValues).Where(Exp.Eq("visitorid", visitorid)); + var dm = await _repository.ExecuteAsync(srequest, updateQry); + var visitorInfo = await visitorManager.GetpreVisitorsAsync(arequest, code); + var stageStatusName = "CheckOut"; + var installedAppId = Convert.ToInt64(visitorInfo.Result.Installedappid); + var stage = await stageManager.GetStageByStageStatusAsync(arequest, installedAppId, stageStatusName); + var NewStageId = stage.Result.StageId; + var UpdateStage = new Update("bizgazecrm_visitors").Value("stageid", NewStageId).Where(Exp.Eq("visitorId", visitorid)); + await _repository.ExecuteAsync(srequest, UpdateStage); + } + returnresponse = new FormActionResponse(); + returnresponse.Obj = null; + returnresponse.PkValue = 0; + return ActionResponse.CreateSuccessResponse("success", returnresponse); + } + } + public List AppliedApps + { + get + { + return new List() { + Bizgaze.CRM.Actions.UpdateCheckoutPreAction + }; + } + } + + } +} + + +