Bizgaze CRM Visitors App
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

VisitorPreInvitePreAction.cs 7.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. using Bizgaze.CRM;
  2. using Bizgaze.CRM.Visitors.Infos;
  3. using Bizgaze.CRM.Visitors.Managers;
  4. using ChoETL;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Dynamic;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Text.Json;
  11. using System.Threading.Tasks;
  12. using Unibase.Data;
  13. using Unibase.Data.Expressions;
  14. using Unibase.Data.Sql;
  15. using Unibase.Dependency;
  16. using Unibase.Platform.Apps.Managers;
  17. using Unibase.Platform.Data;
  18. using Unibase.Platform.Forms.Providers;
  19. using Unibase.Platform.Keys;
  20. using Unibase.Platform.Portability.Providers;
  21. using Unibase.Platform.Tenants.Localization;
  22. namespace Bizgaze.CRM.Visitors.ActionProviders
  23. {
  24. public class UpdateVisitorPreInvitePreAction : BaseFormActionProvider, IFormActionProvider
  25. {
  26. public string ControllerClass
  27. {
  28. get
  29. {
  30. return "Bizgaze.CRM.Visitors.ActionProviders.UpdateVisitorPreInvitePreAction";
  31. }
  32. }
  33. public string FormActionName
  34. {
  35. get
  36. {
  37. return "UpdateVisitorPreInviteForm";
  38. }
  39. }
  40. public string Description
  41. {
  42. get
  43. {
  44. return "Update Visitor Pre Invite PreAction";
  45. }
  46. }
  47. public UniqueKey UniqueId
  48. {
  49. get
  50. {
  51. return Bizgaze.CRM.Actions.UpdateVisitorPreInvite;
  52. }
  53. }
  54. public int ActionType
  55. {
  56. get
  57. {
  58. return (int)Unibase.Platform.Forms.Enums.FormActionProvider.PreAction;
  59. }
  60. }
  61. public async Task<ActionResponse<FormActionResponse>> ExecuteAsync(ActionRequest request, FormActionProviderObject providerObject)
  62. {
  63. var IdValue = providerObject.IdValue;
  64. var srequest = SelectRequest.FromRequest(request);
  65. var obj = providerObject.RequestObject;
  66. var returnresponse = new FormActionResponse();
  67. var defaultPKValue = providerObject.DefaultPKValue;
  68. var stageManager = Unibase.Dependency.DependencyConfig.Resolve<IStageManager>();
  69. var visitorManager = Unibase.Dependency.DependencyConfig.Resolve<Bizgaze.CRM.Visitors.Managers.IVisitorManager>();
  70. var dictObj = obj as IDictionary<string, dynamic>;
  71. dictObj.Add("lastupdateddate", DateTime.Now);
  72. dictObj.Add("checkindate", DateTime.Now);
  73. var CaptureImageObj = Convert.ChangeType(dictObj["Captureimage"].ToString(), typeof(object)).ToString();
  74. var deserializeimagesObj = JsonSerializer.Deserialize<List<ExpandoObject>>(CaptureImageObj);
  75. for (var k = 0; k < deserializeimagesObj.Count; k++)
  76. {
  77. var data1 = deserializeimagesObj[k];
  78. var CaptureImageData = data1 as IDictionary<string, dynamic>;
  79. var image = Convert.ChangeType(CaptureImageData["image"].ToString(), typeof(string)).ToString();
  80. var MobileNumber = dictObj["mobilenumber"].ToString();
  81. var employeeId = Convert.ChangeType(dictObj["employeeid"].ToString(), typeof(long));
  82. var cityId = Convert.ChangeType(dictObj["cityid"].ToString(), typeof(long));
  83. var visitornumberId = Convert.ChangeType(dictObj["visitornumberid"].ToString(), typeof(long));
  84. var purposeofvisit = Convert.ChangeType(dictObj["purposeofvisit"].ToString(), typeof(long));
  85. long visitorid = 0;
  86. var visitorsinfo = await visitorManager.VisitorsbyMobileNumberAsync(srequest, MobileNumber);
  87. Int32 refstatusid = 0;
  88. var stageStatusName = "";
  89. if (visitorsinfo.Result != null)
  90. {
  91. refstatusid = visitorsinfo.Result.RefStatusId;
  92. visitorid = visitorsinfo.Result.VisitorId;
  93. if (refstatusid == 1 || refstatusid == 2)
  94. {
  95. return ActionResponse<FormActionResponse>.CreateErrorResponse("1", "Visitor Already Exists");
  96. }
  97. if (refstatusid == 3)
  98. {
  99. var agreement = visitorsinfo.Result.Agreement;
  100. visitorsinfo.Result.Agreement = agreement;
  101. dictObj["agreement"] = true;
  102. dictObj["visitorid"] = visitorid;
  103. dictObj["visitoremailid"] = visitorsinfo.Result.VisitorEmailId;
  104. dictObj["visitornumberid"] = visitorsinfo.Result.VisitorNumberId;
  105. //var date = visitorsinfo.Result.lastupdateddate;
  106. var fullname = visitorsinfo.Result.FullName;
  107. var sql = "select userid from unibasecmn_users where username='" + fullname + "";
  108. var select = new Unibase.Data.Sql.Select("unibasecmn_users").AllColumns().Where("username", fullname);
  109. var parameters = new List<Unibase.Data.Parameter>();
  110. parameters.Add(new Unibase.Data.Parameter("@username", fullname));
  111. var dt = await GetDataTableAsync(srequest, select, parameters);
  112. stageStatusName = "CheckIn";
  113. var installedAppId = visitorsinfo.Result.Installedappid;
  114. var stage = await stageManager.GetStageByStageStatusAsync(srequest, installedAppId, stageStatusName);
  115. var NewStageId = stage.Result.StageId;
  116. DateTime date = DateTime.Now;
  117. var updateDate = new Dictionary<string, object>();
  118. updateDate.Add("employeeid", employeeId);
  119. updateDate.Add("checkindate", DateTime.Now);
  120. updateDate.Add("photourl", image);
  121. updateDate.Add("cityid", cityId);
  122. updateDate.Add("typeofvisitor", 1);
  123. updateDate.Add("stageid", NewStageId);
  124. updateDate.Add("agreement", agreement);
  125. updateDate.Add("purposeofvisit", purposeofvisit);
  126. updateDate.Add("lastupdateddate", DateTime.Now);
  127. var UpdateStage = new Update("bizgazecrm_visitors").Values(updateDate).Where(Exp.Eq("visitorid", visitorid));
  128. // var UpdateStage = new Update("bizgazecrm_visitors").Value("stageid", NewStageId).Value("lastupdateddate", date).Value("checkindate", DateTime.Now).Where(Exp.Eq("visitorid", visitorid));
  129. await _repository.ExecuteAsync(request, UpdateStage);
  130. }
  131. }
  132. else
  133. {
  134. return ActionResponse<FormActionResponse>.CreateErrorResponse("1", "visitor Not Found");
  135. }
  136. }
  137. //returnresponse = new FormActionResponse();
  138. //returnresponse.Obj = dictObj as ExpandoObject;
  139. //returnresponse.PkValue = defaultPKValue;
  140. //return ActionResponse<FormActionResponse>.CreateSuccessResponse("success", returnresponse);
  141. returnresponse = new FormActionResponse();
  142. returnresponse.Obj = null;
  143. returnresponse.PkValue = 0;
  144. return ActionResponse<FormActionResponse>.CreateSuccessResponse("success", returnresponse);
  145. }
  146. public List<UniqueKey> AppliedApps
  147. {
  148. get
  149. {
  150. return new List<UniqueKey>() {
  151. Bizgaze.CRM.Actions.UpdateVisitorBeenHere,
  152. };
  153. }
  154. }
  155. }
  156. }