diff --git a/CRM.Visitors/ActionProviders/UpdateVisitorBeenHerePreAction.cs b/CRM.Visitors/ActionProviders/UpdateVisitorBeenHerePreAction.cs index 8526e33..a8868f4 100644 --- a/CRM.Visitors/ActionProviders/UpdateVisitorBeenHerePreAction.cs +++ b/CRM.Visitors/ActionProviders/UpdateVisitorBeenHerePreAction.cs @@ -66,25 +66,46 @@ namespace Bizgaze.CRM.Visitors.ActionProviders var IdValue = providerObject.IdValue; var srequest = SelectRequest.FromRequest(request); var obj = providerObject.RequestObject; - var docParametersList = providerObject.DocParametersList; + var returnresponse = new FormActionResponse(); + // var docParametersList = providerObject.DocParametersList; var defaultPKValue = providerObject.DefaultPKValue; var stageManager = Unibase.Dependency.DependencyConfig.Resolve(); var dictObj = obj as IDictionary; - dynamic Visitorid = Convert.ChangeType(dictObj["mobilenumber"].ToString(), Type.GetType("System.Int64")); - var updateValues = new Dictionary(); - updateValues.Add("agreement", true); - var updateQry = new Update("bizgazecrm_visitors").Values(updateValues).Where(Exp.Eq("visitorid", Visitorid)); - var ds = await _repository.ExecuteAsync(request, updateQry); - //visitorObj = JsonSerializer.Deserialize>(data); - //var visitorId= Convert.ToInt64(visitorObj[0].MobileNumber); - //var VisitorManager = DependencyConfig.Resolve(); - //var visitorsInfo = await VisitorManager.GetVisitorPrAsyncintId(Srequest, visitorId); - var returnresponse = new FormActionResponse(); - returnresponse.Obj = null; - returnresponse.PkValue = defaultPKValue; + var MobileNumber = dictObj["mobilenumber"].ToString(); + //var select = new Unibase.Data.Sql.Select().Columns("bizgazecrm_visitors.visitorid").From("bizgazecrm_visitors").Where("mobilenumber", MobileNumber); + //List param = new List(); + //param.Add(new Parameter("@mobilenumber", MobileNumber)); + //var Visitor = await GetDataTableAsync(srequest, select, param); + long visitorid = 0; + var sql = new Unibase.Data.Sql.Select("bizgazecrm_visitors").Columns("bizgazecrm_visitors.installedappid", "bizgazecrm_visitors.visitorid", "bizgazecrm_visitors.fullname", "bizgazecrm_visitors.mobilenumber", "bizgazecrm_visitors.emailid", "bizgazecrm_visitors.photourl", "unibase_stagestatus.stageStatusName", "unibase_stagestatus.RefStatusId").InnerJoin("unibase_stages", Exp.EqColumns("unibase_stages.stageid", "bizgazecrm_visitors.stageid")).InnerJoin("unibase_stagestatus", Exp.EqColumns("unibase_stagestatus.stagestatusid", "unibase_stages.stagestatusid")).Where("bizgazecrm_visitors.mobilenumber", MobileNumber); + List paramsql = new List(); + paramsql.Add(new Parameter("@bizgazecrm_visitors.mobilenumber", MobileNumber)); + var dt = await GetDataTableAsync(srequest, sql, paramsql); + var stageStatusName = ""; + if (dt.Rows.Count > 0) + { + stageStatusName = "CheckIn"; + for (int i = 0; i < dt.Rows.Count; i++) + { + visitorid = dt.Rows[i]["visitorid"]; + var installedAppId = Convert.ToInt64(dt.Rows[i]["installedAppId"]); + 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 updateValues = new Dictionary(); + updateValues.Add("agreement", true); + var updateQry = new Update("bizgazecrm_visitors").Values(updateValues).Where(Exp.Eq("visitorid", visitorid)); + var ds = await _repository.ExecuteAsync(request, updateQry); + returnresponse.Obj = null; + returnresponse.PkValue = defaultPKValue; + + } return ActionResponse.CreateSuccessResponse("success", returnresponse); } + public List AppliedApps { get