diff --git a/CRM.Visitors/ActionProviders/VisitorStageChangeAndUpDateContacts.cs b/CRM.Visitors/ActionProviders/VisitorStageChangeAndUpDateContacts.cs index b902b2a..6a10e39 100644 --- a/CRM.Visitors/ActionProviders/VisitorStageChangeAndUpDateContacts.cs +++ b/CRM.Visitors/ActionProviders/VisitorStageChangeAndUpDateContacts.cs @@ -66,31 +66,29 @@ namespace Bizgaze.CRM.Visitors.ActionProviders var IdValue = providerObject.IdValue; var srequest = SelectRequest.FromRequest(request); var obj = providerObject.RequestObject; - var docParametersList = providerObject.DocParametersList; - dynamic visitorparam = new Dictionary(); + //var docParametersList = providerObject.DocParametersList; + //dynamic visitorparam = new Dictionary(); var defaultPKValue = providerObject.DefaultPKValue; var stageManager = Unibase.Dependency.DependencyConfig.Resolve(); + var visitorManager = Unibase.Dependency.DependencyConfig.Resolve(); var dictObj = obj as IDictionary; List docParameters = dictObj["DocParameters"]; var connection = GetConnection(request); ExpandoObject obj1 = dictObj["RequestObj"]; var req = obj1 as IDictionary; + var mobileNumber = ""; + var emailId = ""; + long installedAppId = 0; + var visitorName = ""; + var stageStatusName = ""; + var photourl = ""; var visitorInfo = docParameters.Find(x => x.DocType == "bizgazecrm_visitors"); if (visitorInfo != null) { var visitorId = Convert.ToInt64(visitorInfo.Parameters["visitorid"]); var visitorType = Convert.ToInt64(visitorInfo.Parameters["visitortype"]); - var sql = new Unibase.Data.Sql.Select("bizgazecrm_visitors").Columns("bizgazecrm_visitors.installedappid", "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.visitorid", visitorId); - List param = new List(); - param.Add(new Parameter("@bizgazecrm_visitors.visitorid", visitorId)); - var dt = await GetDataTableAsync(srequest, sql, param); - var mobileNumber = ""; - var emailId = ""; - long installedAppId = 0; - var visitorName = ""; - var stageStatusName = ""; - var photourl = ""; - if (dt.Rows.Count > 0) + var visitordata = await visitorManager.GetVisitorByIdAsync(srequest, visitorId); + if (visitordata.Result != null) { if (visitorType == 1) { @@ -101,94 +99,82 @@ namespace Bizgaze.CRM.Visitors.ActionProviders stageStatusName = "Pre-Invite"; defaultPKValue = visitorId; } - - for (int i = 0; i < dt.Rows.Count; i++) + 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 visitorTypeid = visitordata.Result.VisitorType; + if (visitorTypeid != 2) { - mobileNumber = Convert.ToString(dt.Rows[i]["mobileNumber"]); - emailId = Convert.ToString(dt.Rows[i]["emailid"]); - installedAppId = Convert.ToInt64(dt.Rows[i]["installedAppId"]); - visitorName = Convert.ToString(dt.Rows[i]["fullname"]); - photourl = Convert.ToString(dt.Rows[i]["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 visitorTypeid = Convert.ToInt64(visitorInfo.Parameters["visitortype"]); - if (visitorTypeid != 2) - { - var options1 = new EntityOptions() - { - IsIdentity = true, - IsNewEntity = true, - TableName = "unibasecmn_users", - PkColumn = "userid", - IsExcludeFromAudit = false, - Id = 0, - }; - dynamic visitorparameters1 = new Dictionary(); - - visitorparameters1.Add("username", visitorName); - visitorparameters1.Add("createdby", srequest.Identity.UserId); - visitorparameters1.Add("createddate", DateTime.Now); - visitorparameters1.Add("versionguid", Guid.NewGuid()); - visitorparameters1.Add("statusid", (int)RowStatus.Active); - visitorparameters1.Add("installedappid", installedAppId); - visitorparameters1.Add("phonenumber", mobileNumber); - visitorparameters1.Add("emailaddress", emailId); - - var responses = await _repository.SaveAsync(request, options1, visitorparameters1); - if (responses.Status == ResponseStatus.Error) - { - if (requestTrans.StartedLocal) await request.RollbackTransactionAsync(); - return ActionResponse.CreateErrorResponse("1", "user Are Not Saved"); - } - else - { - - using (var requestTrans1 = await request.BeginTransactionAsync()) + var options1 = new EntityOptions() { - Int64 userid =0; + IsIdentity = true, + IsNewEntity = true, + TableName = "unibasecmn_users", + PkColumn = "userid", + IsExcludeFromAudit = false, + Id = 0, + }; + dynamic visitorparameters1 = new Dictionary(); + visitorparameters1.Add("username", visitorName); + visitorparameters1.Add("createdby", srequest.Identity.UserId); + visitorparameters1.Add("createddate", DateTime.Now); + visitorparameters1.Add("versionguid", Guid.NewGuid()); + visitorparameters1.Add("statusid", (int)RowStatus.Active); + visitorparameters1.Add("installedappid", installedAppId); + visitorparameters1.Add("phonenumber", mobileNumber); + visitorparameters1.Add("emailaddress", emailId); + var responses = await _repository.SaveAsync(request, options1, visitorparameters1); + if (responses.Status == ResponseStatus.Error) + { + if (requestTrans.StartedLocal) await request.RollbackTransactionAsync(); + return ActionResponse.CreateErrorResponse("1", "user Are Not Saved"); + } + else + { + using (var requestTrans1 = await request.BeginTransactionAsync()) { - var data = responses.Result as Dictionary; - userid = Convert.ToInt64(data["_Id"]); + Int64 userid = 0; + { + var data = responses.Result as Dictionary; + userid = Convert.ToInt64(data["_Id"]); + } + var options = new EntityOptions() + { + IsIdentity = false, + IsNewEntity = true, + TableName = "bizgazecrm_contacts", + PkColumn = "contactid", + IsExcludeFromAudit = false, + Id = 0, + }; + dynamic contactparameters = new Dictionary(); + contactparameters.Add("contactid", userid); + contactparameters.Add("contactname", visitorName); + contactparameters.Add("photourl", photourl); + contactparameters.Add("createdby", srequest.Identity.UserId); + contactparameters.Add("createddate", DateTime.Now); + contactparameters.Add("versionguid", Guid.NewGuid()); + contactparameters.Add("statusid", (int)RowStatus.Active); + contactparameters.Add("installedappid", installedAppId); + var response = await _repository.SaveAsync(request, options, contactparameters); + if (response.Status == ResponseStatus.Error) + { + 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)); + await _repository.ExecuteAsync(request, update); } - var options = new EntityOptions() - { - IsIdentity = false, - IsNewEntity = true, - TableName = "bizgazecrm_contacts", - PkColumn = "contactid", - IsExcludeFromAudit = false, - Id = 0, - }; - dynamic contactparameters = new Dictionary(); - contactparameters.Add("contactid", userid); - contactparameters.Add("contactname", visitorName); - contactparameters.Add("photourl", photourl); - contactparameters.Add("createdby", srequest.Identity.UserId); - contactparameters.Add("createddate", DateTime.Now); - contactparameters.Add("versionguid", Guid.NewGuid()); - contactparameters.Add("statusid", (int)RowStatus.Active); - contactparameters.Add("installedappid", installedAppId); - - var response = await _repository.SaveAsync(request, options, contactparameters); - if (response.Status == ResponseStatus.Error) - { - 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)); - await _repository.ExecuteAsync(request, update); - } } - } + } } - var returnresponse = new FormActionResponse(); returnresponse.Obj = dictObj as ExpandoObject; returnresponse.PkValue = defaultPKValue;