VisitorPreInvitePreAction.cs Changes

This commit is contained in:
2023-08-02 15:52:54 +05:30
parent a67aa4ff9a
commit 1e8faf1e4f
@@ -0,0 +1,115 @@
using Bizgaze.CRM;
using Bizgaze.CRM.Visitors.Infos;
using Bizgaze.CRM.Visitors.Managers;
using System;
using System.Collections.Generic;
using System.Dynamic;
using System.Linq;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
using Unibase.Data;
using Unibase.Data.Expressions;
using Unibase.Data.Sql;
using Unibase.Dependency;
using Unibase.Platform.Apps.Managers;
using Unibase.Platform.Data;
using Unibase.Platform.Forms.Providers;
using Unibase.Platform.Keys;
namespace Bizgaze.CRM.Visitors.ActionProviders
{
public class UpdateVisitorPreInvitePreAction : BaseFormActionProvider, IFormActionProvider
{
public string ControllerClass
{
get
{
return "Bizgaze.CRM.Visitors.ActionProviders.UpdateVisitorPreInvitePreAction";
}
}
public string FormActionName
{
get
{
return "UpdateVisitorPreInviteForm";
}
}
public string Description
{
get
{
return "Update Visitor Pre Invite PreAction";
}
}
public UniqueKey UniqueId
{
get
{
return Bizgaze.CRM.Actions.UpdateVisitorPreInvite;
}
}
public int ActionType
{
get
{
return (int)Unibase.Platform.Forms.Enums.FormActionProvider.PreAction;
}
}
public async Task<ActionResponse<FormActionResponse>> ExecuteAsync(ActionRequest request, FormActionProviderObject providerObject)
{
var IdValue = providerObject.IdValue;
var srequest = SelectRequest.FromRequest(request);
var obj = providerObject.RequestObject;
var returnresponse = new FormActionResponse();
var defaultPKValue = providerObject.DefaultPKValue;
var stageManager = Unibase.Dependency.DependencyConfig.Resolve<IStageManager>();
var visitorManager = Unibase.Dependency.DependencyConfig.Resolve<Bizgaze.CRM.Visitors.Managers.IVisitorManager>();
var dictObj = obj as IDictionary<string, dynamic>;
var MobileNumber = dictObj["mobilenumber"].ToString();
long visitorid = 0;
var visitorsinfo = await visitorManager.VisitorsbyMobileNumberAsync(srequest, MobileNumber);
Int32 refstatusid = 0;
var stageStatusName = "";
if (visitorsinfo.Result != null)
{
refstatusid = visitorsinfo.Result.RefStatusId;
visitorid = visitorsinfo.Result.VisitorId;
if (refstatusid == 3)
{
var agree = await visitorManager.VisitorAgreementAsync(request, visitorid);
stageStatusName = "CheckIn";
dictObj["visitorid"] = visitorid;
DateTime dates = DateTime.Now;
var installedAppId = visitorsinfo.Result.Installedappid;
var stage = await stageManager.GetStageByStageStatusAsync(srequest, installedAppId, stageStatusName);
var NewStageId = stage.Result.StageId;
var Updatecheckindate = new Update("bizgazecrm_visitors").Value("typeofvisitor", 1).Value("stageid", NewStageId).Value("checkindate", dates).Value("lastupdateddate", dates).Where(Exp.Eq("visitorid", visitorid));
await _repository.ExecuteAsync(request, Updatecheckindate);
}
}
else
{
return ActionResponse<FormActionResponse>.CreateErrorResponse("1", "visitor Not Found");
}
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.UpdateVisitorBeenHere,
};
}
}
}
}