From 1d948d594984535dea92509aa51b4b965d996691 Mon Sep 17 00:00:00 2001 From: allauddin Date: Sun, 9 Jul 2023 19:21:15 +0530 Subject: [PATCH] VisitorStageChangeAndUpDateContacts.cs Changes --- .../VisitorStageChangeAndUpDateContacts.cs | 69 ++++++++++++------- 1 file changed, 45 insertions(+), 24 deletions(-) diff --git a/CRM.Visitors/ActionProviders/VisitorStageChangeAndUpDateContacts.cs b/CRM.Visitors/ActionProviders/VisitorStageChangeAndUpDateContacts.cs index 81ecd77..46f3c27 100644 --- a/CRM.Visitors/ActionProviders/VisitorStageChangeAndUpDateContacts.cs +++ b/CRM.Visitors/ActionProviders/VisitorStageChangeAndUpDateContacts.cs @@ -15,6 +15,7 @@ using Unibase.Platform.Apps.Managers; using Unibase.Platform.Data; using Unibase.Platform.Forms.Providers; using Unibase.Platform.Keys; +using Unibase.Platform.Series.Managers; namespace Bizgaze.CRM.Visitors.ActionProviders { @@ -85,46 +86,55 @@ namespace Bizgaze.CRM.Visitors.ActionProviders // var stageStatusName = ""; var photourl = ""; var visitorInfo = docParameters.Find(x => x.DocType == "bizgazecrm_visitors"); - + // var visitorNumberInfo = docParameters.Find(Y => Y.DocType == "bizgazecrm_visitornumbers"); + //var tenantid = Convert.ToInt64(visitorNumberInfo.Parameters["tenantid"]); if (visitorInfo != null) { long installedAppId = 0; var stageStatusName = ""; var code = ""; - //var tenantid = Convert.ToInt64(visitorInfo.Parameters["tenantid"]); + var _code = ""; var visitorIds = Convert.ToInt64(visitorInfo.Parameters["visitorid"]); var sel1 = new Unibase.Data.Sql.Select("bizgazecrm_visitors").AllColumns().Where("visitorid", visitorIds); var param = new List(); param.Add(new Unibase.Data.Parameter("@visitorId", visitorIds)); var dt1 = await GetDataTableAsync(srequest, sel1, param); var tenantid = Convert.ToInt32(dt1.Rows[0]["tenantid"]); + var _SeriesId = Convert.ToInt64(visitorInfo.Parameters["seriesid"]); var visitorType = Convert.ToInt64(visitorInfo.Parameters["visitortype"]); + DateTime CreateDate = Convert.ToDateTime(visitorInfo.Parameters["createddate"]); var visitordata = await visitorManager.GetVisitorByIdAsync(srequest, visitorIds); + var _seriesManager = Unibase.Dependency.DependencyConfig.Resolve(); if (visitordata.Result != null) { if (visitorType == 1) { stageStatusName = "CheckIn"; code = visitorInfo.Parameters["code"].ToString(); - } - else - { - stageStatusName = "Pre-Invite"; - defaultPKValue = visitorIds; - code = visitorInfo.Parameters["accesscode"].ToString(); - } - mobileNumber = visitordata.Result.MobileNumber; - emailId = visitordata.Result.EmailId; - installedAppId = visitordata.Result.Installedappid; - visitorName = visitordata.Result.FullName; - photourl = visitordata.Result.PhotoUrl; - var stages = await stageManager.GetStageByStageStatusAsync(srequest, installedAppId, stageStatusName); - var NewStageIds = stages.Result.StageId; - var UpdateStages = new Update("bizgazecrm_visitors").Value("stageid", NewStageIds).Value("lastupdateddate", DateTime.Now).Where(Exp.Eq("visitorId", visitorIds)); - await _repository.ExecuteAsync(request, UpdateStages); - var visitorTypeid = visitordata.Result.VisitorType; - if (visitorTypeid != 2) - { + + if (_SeriesId != 0) + { + var SeriesCodeInfo = await _seriesManager.GenerateSeriesCodeForQueueAsync(request, _SeriesId, DateTime.Now); + if (SeriesCodeInfo.Status == ResponseStatus.Error) + { + if (requestTrans.StartedLocal) await request.RollbackTransactionAsync(); + return ActionResponse.CreateErrorResponse("1", SeriesCodeInfo.Message); + } + else + { + _code = SeriesCodeInfo.Result.SeriesCode; + } + } + mobileNumber = visitordata.Result.MobileNumber; + emailId = visitordata.Result.EmailId; + installedAppId = visitordata.Result.Installedappid; + visitorName = visitordata.Result.FullName; + photourl = visitordata.Result.PhotoUrl; + var stages = await stageManager.GetStageByStageStatusAsync(srequest, installedAppId, stageStatusName); + var NewStageIds = stages.Result.StageId; + var UpdateStages = new Update("bizgazecrm_visitors").Value("stageid", NewStageIds).Value("lastupdateddate", DateTime.Now).Where(Exp.Eq("visitorId", visitorIds)); + await _repository.ExecuteAsync(request, UpdateStages); + var visitorTypeid = visitordata.Result.VisitorType; var options1 = new EntityOptions() { IsIdentity = true, @@ -183,13 +193,24 @@ namespace Bizgaze.CRM.Visitors.ActionProviders if (requestTrans.StartedLocal) await request.RollbackTransactionAsync(); return ActionResponse.CreateErrorResponse("1", "Contacts Are Not Saved"); } - var update = new Update("bizgazecrm_visitors").Value("contactid", userid).Where(Exp.Eq("visitorid", visitorIds)); + var update = new Update("bizgazecrm_visitors").Value("contactid", userid).Value("code", _code).Where(Exp.Eq("visitorid", visitorIds)); await _repository.ExecuteAsync(request, update); } } + + } + else + { + stageStatusName = "Pre-Invite"; + defaultPKValue = visitorIds; + code = visitorInfo.Parameters["accesscode"].ToString(); + var stage = await stageManager.GetStageByStageStatusAsync(srequest, installedAppId, stageStatusName); + var NewStageId = stage.Result.StageId; + var UpdateStage = new Update("bizgazecrm_visitors").Value("stageid", NewStageId).Value("lastupdateddate", DateTime.Now).Where(Exp.Eq("visitorId", visitorIds)); + await _repository.ExecuteAsync(request, UpdateStage); } } - var visitorInfos = await visitorManager.GetpreVisitorsAsync(srequest, code); + var visitorInfos = await visitorManager.GetpreVisitorsAsync(srequest, _code); var visitorId = Convert.ToInt64(visitorInfos.Result.VisitorId); var select = new Unibase.Data.Sql.Select("bizgazecrm_visitorcheckout").AllColumns().Where("visitorId", visitorId); var parameters = new List(); @@ -214,7 +235,7 @@ namespace Bizgaze.CRM.Visitors.ActionProviders visitor.Add("checkoutdate", DateTime.MinValue); visitor.Add("rating", 0); visitor.Add("versionguid", Guid.NewGuid()); - visitor.Add("uniqueid", code); + visitor.Add("uniqueid", _code); visitor.Add("statusid", (int)RowStatus.Active); visitor.Add("installedappid", visitorInfos.Result.Installedappid); visitor.Add("lastupdateddate", DateTime.Now);