123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202 |
- 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 UpdateVisitorBeenHerePreAction : BaseFormActionProvider, IFormActionProvider
- {
- public string ControllerClass
- {
- get
- {
- return "Bizgaze.CRM.Visitors.ActionProviders.UpdateVisitorBeenHerePreAction";
-
- }
- }
- public string FormActionName
- {
- get
- {
- return "UpdateVisitorBeenHere";
- }
- }
- public string Description
- {
- get
- {
- return "Update Visitor Been Here PreAction";
- }
- }
- public UniqueKey UniqueId
- {
- get
- {
- return Bizgaze.CRM.Actions.UpdateVisitorBeenHere;
- }
- }
- 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 == 1)
- {
- stageStatusName = "Pre-Invite";
- var agree = await visitorManager.VisitorAgreementAsync(request, visitorid);
- }
- else
- {
- stageStatusName = "CheckIn";
- }
- var code = visitorsinfo.Result.Code;
-
- var agreement = visitorsinfo.Result.Agreement;
- visitorsinfo.Result.Agreement = agreement;
- dictObj["agreement"] = true;
- dictObj["visitorid"] = visitorid;
- dictObj["visitoremailid"] = visitorsinfo.Result.VisitorEmailId;
- dictObj["visitornumberid"] = visitorsinfo.Result.VisitorNumberId;
- var fullname = visitorsinfo.Result.FullName;
- var sql = "select userid from unibasecmn_users where username='" + fullname + "";
- var select = new Unibase.Data.Sql.Select("unibasecmn_users").AllColumns().Where("username", fullname);
- var parameters = new List<Unibase.Data.Parameter>();
- parameters.Add(new Unibase.Data.Parameter("@username", fullname));
- var dt = await GetDataTableAsync(srequest, select, parameters);
- var contactid = dt.Rows[0]["userid"];
- var vistoroptions = new EntityOptions()
- {
- IsIdentity = true,
- IsNewEntity = true,
- TableName = "bizgazecrm_visitors",
- PkColumn = "visitorid",
- IsExcludeFromAudit = false,
- Id = 0,
- };
-
- dynamic visitor = new Dictionary<string, object>();
- visitor.Add("createdby", srequest.Identity.UserId);
- visitor.Add("createddate", DateTime.Now);
- visitor.Add("statusid", visitorsinfo.Result.StatusId);
- visitor.Add("alternatenumber", visitorsinfo.Result.AlternateNumber);
- visitor.Add("organizationname", visitorsinfo.Result.OrganizationName);
- visitor.Add("checkindate", DateTime.Now);
- visitor.Add("contactid", contactid);
- visitor.Add("code", visitorsinfo.Result.Code);
- visitor.Add("agreement", true);
- visitor.Add("employeeid", visitorsinfo.Result.EmployeeId);
- visitor.Add("seriesid", visitorsinfo.Result.SeriesId);
- visitor.Add("stageid", visitorsinfo.Result.StageId);
- visitor.Add("tenantid", visitorsinfo.Result.TenantId);
- visitor.Add("installedappid", visitorsinfo.Result.Installedappid);
- visitor.Add("fullname", visitorsinfo.Result.FullName);
- visitor.Add("futureinvitation", visitorsinfo.Result.FutureInvitation);
- visitor.Add("comingfrom", visitorsinfo.Result.ComingFrom);
- visitor.Add("purposeofvisit", visitorsinfo.Result.PurposeOfVisit);
- visitor.Add("title", visitorsinfo.Result.Title);
- visitor.Add("visitortype", visitorsinfo.Result.VisitorType);
- var response = await _repository.SaveAsync(request, vistoroptions, visitor);
- if (response.Status == ResponseStatus.Error)
- {
- return ActionResponse<FormActionResponse>.CreateErrorResponse("1", "Visitor Check Out Data Not Saved");
- }
-
- var _visitorId = Convert.ToInt64(response.Result["_Id"].ToString());
- var vistoroptions1 = new EntityOptions()
- {
- IsIdentity = true,
- IsNewEntity = true,
- TableName = "bizgazecrm_visitorcheckout",
- PkColumn = "visitorcheckoutid",
- IsExcludeFromAudit = false,
- Id = 0,
- };
- dynamic visitor1 = new Dictionary<string, object>();
- visitor1.Add("createdby", srequest.Identity.UserId);
- visitor1.Add("visitorid", _visitorId);
- visitor1.Add("checkindate", DateTime.Now);
- visitor1.Add("tenantid", visitorsinfo.Result.TenantId);
- visitor1.Add("comments", "");
- visitor1.Add("checkoutdate", DateTime.MinValue);
- visitor1.Add("rating", 0);
- visitor1.Add("versionguid", Guid.NewGuid());
- visitor1.Add("uniqueid", visitorsinfo.Result.Code);
- visitor1.Add("statusid", (int)RowStatus.Active);
- visitor1.Add("installedappid", visitorsinfo.Result.Installedappid);
- visitor1.Add("lastupdateddate", DateTime.Now);
- var response1 = await _repository.SaveAsync(request, vistoroptions1, visitor1);
- if (response1.Status == ResponseStatus.Error)
- {
-
- return ActionResponse<FormActionResponse>.CreateErrorResponse("1", "Visitor Check Out Data Not Saved");
- }
- var lastdate = visitorsinfo.Result.LastUpdatedDate;
- visitorsinfo.Result.LastUpdatedDate = DateTime.Now;
- var installedAppId = visitorsinfo.Result.Installedappid;
- var stage = await stageManager.GetStageByStageStatusAsync(srequest, installedAppId, stageStatusName);
- var NewStageId = stage.Result.StageId;
- DateTime date = DateTime.Now;
- var UpdateStage = new Update("bizgazecrm_visitors").Value("stageid", NewStageId).Value("lastupdateddate", date).Where(Exp.Eq("code", code));
- await _repository.ExecuteAsync(request, UpdateStage);
- }
- else
- {
- return ActionResponse<FormActionResponse>.CreateErrorResponse("1", "visitor Not Found");
- }
- returnresponse.PkValue = defaultPKValue;
- return ActionResponse<FormActionResponse>.CreateSuccessResponse("success", returnresponse);
-
- //returnresponse = new FormActionResponse();
- //returnresponse.Obj = dictObj as ExpandoObject;
- //returnresponse.PkValue = defaultPKValue;
- //return ActionResponse<FormActionResponse>.CreateSuccessResponse("success", returnresponse);
- }
- public List<UniqueKey> AppliedApps
- {
- get
- {
- return new List<UniqueKey>() {
- Bizgaze.CRM.Actions.UpdateVisitorBeenHere,
- };
- }
- }
-
- }
- }
|