First Time commit
This commit is contained in:
@@ -0,0 +1,118 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text.Json;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Unibase.Data.Expressions;
|
||||||
|
using Unibase.Data.Sql;
|
||||||
|
using Unibase.Platform.Apps.Managers;
|
||||||
|
using Unibase.Platform.Data;
|
||||||
|
using Unibase.Platform.Forms.Providers;
|
||||||
|
using Unibase.Platform.Keys;
|
||||||
|
|
||||||
|
namespace CRM.Visitors.ActionProviders
|
||||||
|
{
|
||||||
|
public class UpdateCheckoutPreAction : BaseFormActionProvider, IFormActionProvider
|
||||||
|
{
|
||||||
|
public string ControllerClass
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return "Bizgaze.CRM.Visitors.ActionProviders.UpdateCheckoutPreAction";
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public string FormActionName
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return "UpdateCheckoutPreAction";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public string Description
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return "Update Checkout PreAction";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public UniqueKey UniqueId
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return Bizgaze.CRM.Actions.UpdateCheckoutPreAction;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public int ActionType
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return (int)Unibase.Platform.Forms.Enums.FormActionProvider.PreAction;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<ActionResponse<FormActionResponse>> ExecuteAsync(ActionRequest srequest, FormActionProviderObject providerObject)
|
||||||
|
{
|
||||||
|
|
||||||
|
using (var requestTrans = await srequest.BeginTransactionAsync())
|
||||||
|
{
|
||||||
|
var IdValue = providerObject.IdValue;
|
||||||
|
var arequest = SelectRequest.FromRequest(srequest);
|
||||||
|
var obj = providerObject.RequestObject;
|
||||||
|
var returnresponse = new FormActionResponse();
|
||||||
|
var defaultPKValue = providerObject.DefaultPKValue;
|
||||||
|
var stageManager = Unibase.Dependency.DependencyConfig.Resolve<IStageManager>();
|
||||||
|
dynamic visitorparam = new Dictionary<string, object>();
|
||||||
|
var dictObj = obj as IDictionary<string, dynamic>;
|
||||||
|
var connection = GetConnection(srequest);
|
||||||
|
var req = dictObj as IDictionary<string, object>;
|
||||||
|
var code = Convert.ChangeType(dictObj["uniqueid"].ToString(), typeof(string));
|
||||||
|
var select = new Unibase.Data.Sql.Select("bizgazecrm_visitors").AllColumns().Where("code", code);
|
||||||
|
var parameters = new List<Unibase.Data.Parameter>();
|
||||||
|
parameters.Add(new Unibase.Data.Parameter("@code", code));
|
||||||
|
var dt = await GetDataTableAsync(arequest, select, parameters);
|
||||||
|
if (dt.Rows.Count > 0)
|
||||||
|
{
|
||||||
|
var visitorManager = Unibase.Dependency.DependencyConfig.Resolve<Bizgaze.CRM.Visitors.Managers.IVisitorManager>();
|
||||||
|
var visitorid = dt.Rows[0]["visitorid"];
|
||||||
|
var tenantId = dt.Rows[0]["tenantid"];
|
||||||
|
var feedBackJson = Convert.ChangeType(req["feedbackrating"].ToString(), typeof(object)).ToString();
|
||||||
|
var feedBackObj = JsonSerializer.Deserialize<CRM.Visitors.Request.VisitorRequest>(feedBackJson);
|
||||||
|
var comments = feedBackObj.Comments;
|
||||||
|
var rating = feedBackObj.Rating;
|
||||||
|
var updateValues = new Dictionary<string, object>();
|
||||||
|
updateValues.Add("checkoutdate", DateTime.Now);
|
||||||
|
updateValues.Add("createddate", DateTime.Now);
|
||||||
|
updateValues.Add("uniqueid", code);
|
||||||
|
updateValues.Add("comments", comments.ToString());
|
||||||
|
updateValues.Add("rating", Convert.ToInt32(rating));
|
||||||
|
var updateQry = new Update("bizgazecrm_visitorcheckout").Values(updateValues).Where(Exp.Eq("visitorid", visitorid));
|
||||||
|
var dm = await _repository.ExecuteAsync(srequest, updateQry);
|
||||||
|
var visitorInfo = await visitorManager.GetpreVisitorsAsync(arequest, code);
|
||||||
|
var stageStatusName = "CheckOut";
|
||||||
|
var installedAppId = Convert.ToInt64(visitorInfo.Result.Installedappid);
|
||||||
|
var stage = await stageManager.GetStageByStageStatusAsync(arequest, installedAppId, stageStatusName);
|
||||||
|
var NewStageId = stage.Result.StageId;
|
||||||
|
var UpdateStage = new Update("bizgazecrm_visitors").Value("stageid", NewStageId).Where(Exp.Eq("visitorId", visitorid));
|
||||||
|
await _repository.ExecuteAsync(srequest, UpdateStage);
|
||||||
|
}
|
||||||
|
returnresponse = new FormActionResponse();
|
||||||
|
returnresponse.Obj = null;
|
||||||
|
returnresponse.PkValue = 0;
|
||||||
|
return ActionResponse<FormActionResponse>.CreateSuccessResponse("success", returnresponse);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public List<UniqueKey> AppliedApps
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return new List<UniqueKey>() {
|
||||||
|
Bizgaze.CRM.Actions.UpdateCheckoutPreAction
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user