|
@@ -1,4 +1,5 @@
|
1
|
1
|
using Bizgaze.CRM;
|
|
2
|
+using Bizgaze.CRM.Visitors.Infos;
|
2
|
3
|
using System;
|
3
|
4
|
using System.Collections.Generic;
|
4
|
5
|
using System.Dynamic;
|
|
@@ -55,11 +56,7 @@ namespace CRM.Visitors.ActionProviders
|
55
|
56
|
return (int)Unibase.Platform.Forms.Enums.FormActionProvider.PostAction;
|
56
|
57
|
}
|
57
|
58
|
}
|
58
|
|
- //public ActionResponse<ExpandoObject> Execute(ActionRequest request, object IdValue, ExpandoObject obj, List<Unibase.Platform.Forms.Requests.DocParameter> docParametersList, ref long defaultPKValue)
|
59
|
|
- //{
|
60
|
|
- // return null;
|
61
|
|
-
|
62
|
|
- //}
|
|
59
|
+
|
63
|
60
|
public async Task<ActionResponse<FormActionResponse>> ExecuteAsync(ActionRequest request, FormActionProviderObject providerObject)
|
64
|
61
|
{
|
65
|
62
|
using (var requestTrans = await request.BeginTransactionAsync())
|
|
@@ -74,57 +71,13 @@ namespace CRM.Visitors.ActionProviders
|
74
|
71
|
var visitorManager = Unibase.Dependency.DependencyConfig.Resolve<Bizgaze.CRM.Visitors.Managers.IVisitorManager>();
|
75
|
72
|
var dictObj = obj as IDictionary<string, dynamic>;
|
76
|
73
|
var connection = GetConnection(request);
|
77
|
|
- ExpandoObject obj1 = dictObj["RequestObj"];
|
78
|
|
- var req = obj1 as IDictionary<string, object>;
|
79
|
|
- var code = Convert.ChangeType(req["uniqueid"].ToString(), typeof(object)).ToString();
|
80
|
|
- var feedBackJson = Convert.ChangeType(req["feedbackrating"].ToString(), typeof(object)).ToString();
|
81
|
|
- var feedBackObj = JsonSerializer.Deserialize<Request.VisitorRequest>(feedBackJson);
|
82
|
|
- List<Unibase.Platform.Forms.Requests.DocParameter> docParameters = dictObj["DocParameters"];
|
|
74
|
+ List<Unibase.Platform.Forms.Requests.DocParameter> docParameters = dictObj["DocParameters"];
|
|
75
|
+ var updateinfo = docParameters.Find(y => y.DocType == "bizgazecrm_visitors");
|
|
76
|
+ var visitorid = updateinfo.Parameters["visitorid"];
|
|
77
|
+ var date = DateTime.Now;
|
|
78
|
+ var UpdateStage = new Update("bizgazecrm_visitors").Value("lastupdateddate", date).Where(Exp.Eq("visitorid", visitorid));
|
|
79
|
+ await _repository.ExecuteAsync(request, UpdateStage);
|
83
|
80
|
var checkinfo = docParameters.Find(x => x.DocType == "bizgazecrm_visitorcheckout");
|
84
|
|
- var visitorcheckoutId= checkinfo.Parameters["visitorcheckoutid"].ToString();
|
85
|
|
- var comments = feedBackObj.Comments;
|
86
|
|
- var rating = feedBackObj.Rating;
|
87
|
|
- var visitorInfo = await visitorManager.GetpreVisitorsAsync(srequest, code);
|
88
|
|
-
|
89
|
|
- if (visitorInfo.Result != null)
|
90
|
|
- {
|
91
|
|
- var visitorId = Convert.ToInt64(visitorInfo.Result.VisitorId);
|
92
|
|
- var stageStatusName = "CheckOut";
|
93
|
|
- var installedAppId = Convert.ToInt64(visitorInfo.Result.Installedappid);
|
94
|
|
- var stage = await stageManager.GetStageByStageStatusAsync(srequest, installedAppId, stageStatusName);
|
95
|
|
- var NewStageId = stage.Result.StageId;
|
96
|
|
- var UpdateStage = new Update("bizgazecrm_visitors").Value("stageid", NewStageId).Where(Exp.Eq("visitorId", visitorId));
|
97
|
|
- await _repository.ExecuteAsync(request, UpdateStage);
|
98
|
|
- var vistoroptions = new EntityOptions()
|
99
|
|
- {
|
100
|
|
- IsIdentity = false,
|
101
|
|
- IsNewEntity = false,
|
102
|
|
- TableName = "bizgazecrm_visitorcheckout",
|
103
|
|
- PkColumn = "visitorcheckoutid",
|
104
|
|
- IsExcludeFromAudit = false,
|
105
|
|
- Id =Convert.ToInt64(visitorcheckoutId),
|
106
|
|
- };
|
107
|
|
- dynamic visitor = new Dictionary<string, object>();
|
108
|
|
- visitor.Add("visitorcheckoutid", Convert.ToInt64(visitorcheckoutId));
|
109
|
|
- visitor.Add("createdby", srequest.Identity.UserId);
|
110
|
|
- visitor.Add("createddate", DateTime.Now);
|
111
|
|
- visitor.Add("checkoutdate", DateTime.Now);
|
112
|
|
- visitor.Add("checkindate", visitorInfo.Result.CheckInDate);
|
113
|
|
- visitor.Add("comments", comments);
|
114
|
|
- visitor.Add("rating", Convert.ToInt32(rating));
|
115
|
|
- visitor.Add("versionguid", Guid.NewGuid());
|
116
|
|
- visitor.Add("uniqueid", code);
|
117
|
|
- visitor.Add("statusid", (int)RowStatus.Active);
|
118
|
|
- visitor.Add("installedappid", visitorInfo.Result.Installedappid);
|
119
|
|
- visitor.Add("visitorid", visitorId);
|
120
|
|
- var responses = await _repository.SaveAsync(request, vistoroptions, visitor);
|
121
|
|
- if (responses.Status == ResponseStatus.Error)
|
122
|
|
- {
|
123
|
|
- if (requestTrans.StartedLocal) await request.RollbackTransactionAsync();
|
124
|
|
- return ActionResponse<FormActionResponse>.CreateErrorResponse("1", "Visitor Check Out Data Not Saved");
|
125
|
|
- }
|
126
|
|
-
|
127
|
|
- }
|
128
|
81
|
var returnresponse = new FormActionResponse();
|
129
|
82
|
returnresponse.Obj = null;
|
130
|
83
|
returnresponse.PkValue = 0;
|