diff --git a/CRM.Visitors/ActionProviders/FeedBackPostActionProvider.cs b/CRM.Visitors/ActionProviders/FeedBackPostActionProvider.cs index 160d5b0..fc5d1fa 100644 --- a/CRM.Visitors/ActionProviders/FeedBackPostActionProvider.cs +++ b/CRM.Visitors/ActionProviders/FeedBackPostActionProvider.cs @@ -33,9 +33,7 @@ namespace CRM.Visitors.ActionProviders { return "FeedBack"; } - }/// - /// test 123 - /// + } public string Description { get @@ -74,66 +72,62 @@ namespace CRM.Visitors.ActionProviders var defaultPKValue = providerObject.DefaultPKValue; var stageManager = Unibase.Dependency.DependencyConfig.Resolve(); var visitorManager = Unibase.Dependency.DependencyConfig.Resolve(); - var dictObj = obj as IDictionary; + var dictObj = obj as IDictionary; var connection = GetConnection(request); ExpandoObject obj1 = dictObj["RequestObj"]; var req = obj1 as IDictionary; var code = Convert.ChangeType(req["uniqueid"].ToString(), typeof(object)).ToString(); var feedBackJson = Convert.ChangeType(req["feedbackrating"].ToString(), typeof(object)).ToString(); - var feedBackObj = JsonSerializer.Deserialize(feedBackJson); + var feedBackObj = JsonSerializer.Deserialize(feedBackJson); + List docParameters = dictObj["DocParameters"]; + var checkinfo = docParameters.Find(x => x.DocType == "bizgazecrm_visitorcheckout"); + var visitorcheckoutId= checkinfo.Parameters["visitorcheckoutid"].ToString(); var comments = feedBackObj.Comments; var rating = feedBackObj.Rating; var visitorInfo = await visitorManager.GetpreVisitorsAsync(srequest, code); - if (visitorInfo != null) + + if (visitorInfo.Result != null) { var visitorId = Convert.ToInt64(visitorInfo.Result.VisitorId); - 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 stageStatusName = ""; - if (dt.Rows.Count > 0) - { - stageStatusName = "CheckOut"; - for (int i = 0; i < dt.Rows.Count; i++) - { - 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 options = 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("createddate", DateTime.Now); - visitor.Add("checkoutdate", DateTime.Now); - visitor.Add("comments", comments); - visitor.Add("rating", Convert.ToInt32(rating)); - visitor.Add("versionguid", Guid.NewGuid()); - visitor.Add("uniqueid", code); - visitor.Add("statusid", (int)RowStatus.Active); - visitor.Add("installedappid", visitorInfo.Result.Installedappid); - visitor.Add("visitorid", visitorInfo.Result.VisitorId); - var responses = await _repository.SaveAsync(request, options, visitor); - if (responses.Status == ResponseStatus.Error) - { - if (requestTrans.StartedLocal) await request.RollbackTransactionAsync(); - return ActionResponse.CreateErrorResponse("1", "Visitor Check Out Data Not Saved"); - } - } + var stageStatusName = "CheckOut"; + var installedAppId = Convert.ToInt64(visitorInfo.Result.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 vistoroptions = new EntityOptions() + { + IsIdentity = false, + IsNewEntity = false, + TableName = "bizgazecrm_visitorcheckout", + PkColumn = "visitorcheckoutid", + IsExcludeFromAudit = false, + Id =Convert.ToInt64(visitorcheckoutId), + }; + dynamic visitor = new Dictionary(); + visitor.Add("visitorcheckoutid", Convert.ToInt64(visitorcheckoutId)); + visitor.Add("createdby", srequest.Identity.UserId); + visitor.Add("createddate", DateTime.Now); + visitor.Add("checkoutdate", DateTime.Now); + visitor.Add("checkindate", visitorInfo.Result.CheckInDate); + visitor.Add("comments", comments); + visitor.Add("rating", Convert.ToInt32(rating)); + visitor.Add("versionguid", Guid.NewGuid()); + visitor.Add("uniqueid", code); + visitor.Add("statusid", (int)RowStatus.Active); + visitor.Add("installedappid", visitorInfo.Result.Installedappid); + visitor.Add("visitorid", visitorId); + var responses = await _repository.SaveAsync(request, vistoroptions, visitor); + if (responses.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; - returnresponse.PkValue = defaultPKValue; + returnresponse.Obj = null; + returnresponse.PkValue = 0; return ActionResponse.CreateSuccessResponse("success", returnresponse); } }