FeedBackPostActionProvider.cs changes

This commit is contained in:
2023-09-04 15:52:09 +05:30
parent 99b24ce27b
commit ee7a5cae06
@@ -1,4 +1,5 @@
using Bizgaze.CRM;
using Bizgaze.CRM.Visitors.Infos;
using System;
using System.Collections.Generic;
using System.Dynamic;
@@ -55,11 +56,7 @@ namespace CRM.Visitors.ActionProviders
return (int)Unibase.Platform.Forms.Enums.FormActionProvider.PostAction;
}
}
//public ActionResponse<ExpandoObject> Execute(ActionRequest request, object IdValue, ExpandoObject obj, List<Unibase.Platform.Forms.Requests.DocParameter> docParametersList, ref long defaultPKValue)
//{
// return null;
//}
public async Task<ActionResponse<FormActionResponse>> ExecuteAsync(ActionRequest request, FormActionProviderObject providerObject)
{
using (var requestTrans = await request.BeginTransactionAsync())
@@ -74,57 +71,13 @@ namespace CRM.Visitors.ActionProviders
var visitorManager = Unibase.Dependency.DependencyConfig.Resolve<Bizgaze.CRM.Visitors.Managers.IVisitorManager>();
var dictObj = obj as IDictionary<string, dynamic>;
var connection = GetConnection(request);
ExpandoObject obj1 = dictObj["RequestObj"];
var req = obj1 as IDictionary<string, object>;
var code = Convert.ChangeType(req["uniqueid"].ToString(), typeof(object)).ToString();
var feedBackJson = Convert.ChangeType(req["feedbackrating"].ToString(), typeof(object)).ToString();
var feedBackObj = JsonSerializer.Deserialize<Request.VisitorRequest>(feedBackJson);
List<Unibase.Platform.Forms.Requests.DocParameter> docParameters = dictObj["DocParameters"];
List<Unibase.Platform.Forms.Requests.DocParameter> docParameters = dictObj["DocParameters"];
var updateinfo = docParameters.Find(y => y.DocType == "bizgazecrm_visitors");
var visitorid = updateinfo.Parameters["visitorid"];
var date = DateTime.Now;
var UpdateStage = new Update("bizgazecrm_visitors").Value("lastupdateddate", date).Where(Exp.Eq("visitorid", visitorid));
await _repository.ExecuteAsync(request, UpdateStage);
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.Result != null)
{
var visitorId = Convert.ToInt64(visitorInfo.Result.VisitorId);
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<string, object>();
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<FormActionResponse>.CreateErrorResponse("1", "Visitor Check Out Data Not Saved");
}
}
var returnresponse = new FormActionResponse();
returnresponse.Obj = null;
returnresponse.PkValue = 0;