diff --git a/CRM.Visitors/ActionProviders/VisitorStageChangeAndUpDateContacts.cs b/CRM.Visitors/ActionProviders/VisitorStageChangeAndUpDateContacts.cs index db93a9a..91ec398 100644 --- a/CRM.Visitors/ActionProviders/VisitorStageChangeAndUpDateContacts.cs +++ b/CRM.Visitors/ActionProviders/VisitorStageChangeAndUpDateContacts.cs @@ -1,4 +1,6 @@ using Bizgaze.CRM; +using ChoETL; +using DnsClient; using System; using System.Collections.Generic; using System.Dynamic; @@ -78,16 +80,20 @@ namespace Bizgaze.CRM.Visitors.ActionProviders var req = obj1 as IDictionary; var mobileNumber = ""; var emailId = ""; - long installedAppId = 0; + //long installedAppId = 0; var visitorName = ""; - var stageStatusName = ""; + // var stageStatusName = ""; var photourl = ""; var visitorInfo = docParameters.Find(x => x.DocType == "bizgazecrm_visitors"); + if (visitorInfo != null) { - var visitorId = Convert.ToInt64(visitorInfo.Parameters["visitorid"]); + long installedAppId = 0; + var stageStatusName = ""; + var visitorIds = Convert.ToInt64(visitorInfo.Parameters["visitorid"]); var visitorType = Convert.ToInt64(visitorInfo.Parameters["visitortype"]); - var visitordata = await visitorManager.GetVisitorByIdAsync(srequest, visitorId); + var code = visitorInfo.Parameters["code"].ToString(); + var visitordata = await visitorManager.GetVisitorByIdAsync(srequest, visitorIds); if (visitordata.Result != null) { if (visitorType == 1) @@ -97,17 +103,17 @@ namespace Bizgaze.CRM.Visitors.ActionProviders else { stageStatusName = "Pre-Invite"; - defaultPKValue = visitorId; + defaultPKValue = visitorIds; } mobileNumber = visitordata.Result.MobileNumber; emailId = visitordata.Result.EmailId; installedAppId = visitordata.Result.Installedappid; visitorName = visitordata.Result.FullName; photourl = visitordata.Result.PhotoUrl; - var stage = await stageManager.GetStageByStageStatusAsync(srequest, installedAppId, stageStatusName); - var NewStageId = stage.Result.StageId; - var UpdateStage = new Update("bizgazecrm_visitors").Value("stageid", NewStageId).Where(Exp.Eq("visitorId", visitorId)); - await _repository.ExecuteAsync(request, UpdateStage); + var stages = await stageManager.GetStageByStageStatusAsync(srequest, installedAppId, stageStatusName); + var NewStageIds = stages.Result.StageId; + var UpdateStages= new Update("bizgazecrm_visitors").Value("stageid", NewStageIds).Where(Exp.Eq("visitorId", visitorIds)); + await _repository.ExecuteAsync(request, UpdateStages); var visitorTypeid = visitordata.Result.VisitorType; if (visitorTypeid != 2) { @@ -168,12 +174,40 @@ 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", visitorId)); + var update = new Update("bizgazecrm_visitors").Value("contactid", userid).Where(Exp.Eq("visitorid", visitorIds)); await _repository.ExecuteAsync(request, update); } } } - } + } + var visitorInfos = await visitorManager.GetpreVisitorsAsync(srequest, code); + var visitorId = Convert.ToInt64(visitorInfos.Result.VisitorId); + var vistoroptions = new EntityOptions() + { + IsIdentity = true, + IsNewEntity = true, + TableName = "bizgazecrm_visitorcheckout", + PkColumn = "visitorcheckoutid", + IsExcludeFromAudit = false, + Id = 0, + }; + dynamic visitor = new Dictionary(); + visitor.Add("createdby", srequest.Identity.UserId); + visitor.Add("checkindate", visitorInfos.Result.CheckInDate); + visitor.Add("comments", ""); + visitor.Add("checkoutdate", DateTime.MinValue); + visitor.Add("rating", 0); + visitor.Add("versionguid", Guid.NewGuid()); + visitor.Add("uniqueid", code); + visitor.Add("statusid", (int)RowStatus.Active); + visitor.Add("installedappid", visitorInfos.Result.Installedappid); + visitor.Add("visitorid", visitorId); + var response1 = await _repository.SaveAsync(request, vistoroptions, visitor); + if (response1.Status == ResponseStatus.Error) + { + if (requestTrans.StartedLocal) await request.RollbackTransactionAsync(); + return ActionResponse.CreateErrorResponse("1", "Visitor Check Out Data Not Saved"); + } } var returnresponse = new FormActionResponse(); returnresponse.Obj = dictObj as ExpandoObject;