Przeglądaj źródła

VisitorStageChangeAndUpDateContacts.cs Changes

allauddin 2 lat temu
rodzic
commit
1d948d5949

+ 45
- 24
CRM.Visitors/ActionProviders/VisitorStageChangeAndUpDateContacts.cs Wyświetl plik

@@ -15,6 +15,7 @@ using Unibase.Platform.Apps.Managers;
15 15
 using Unibase.Platform.Data;
16 16
 using Unibase.Platform.Forms.Providers;
17 17
 using Unibase.Platform.Keys;
18
+using Unibase.Platform.Series.Managers;
18 19
 
19 20
 namespace Bizgaze.CRM.Visitors.ActionProviders
20 21
 {
@@ -85,46 +86,55 @@ namespace Bizgaze.CRM.Visitors.ActionProviders
85 86
                 // var stageStatusName = "";
86 87
                 var photourl = "";
87 88
                 var visitorInfo = docParameters.Find(x => x.DocType == "bizgazecrm_visitors");
88
-
89
+                // var visitorNumberInfo = docParameters.Find(Y => Y.DocType == "bizgazecrm_visitornumbers");
90
+                //var tenantid = Convert.ToInt64(visitorNumberInfo.Parameters["tenantid"]);
89 91
                 if (visitorInfo != null)
90 92
                 {
91 93
                     long installedAppId = 0;
92 94
                     var stageStatusName = "";
93 95
                     var code = "";
94
-                    //var tenantid = Convert.ToInt64(visitorInfo.Parameters["tenantid"]);
96
+                    var _code = "";
95 97
                     var visitorIds = Convert.ToInt64(visitorInfo.Parameters["visitorid"]);
96 98
                     var sel1 = new Unibase.Data.Sql.Select("bizgazecrm_visitors").AllColumns().Where("visitorid", visitorIds);
97 99
                     var param = new List<Unibase.Data.Parameter>();
98 100
                     param.Add(new Unibase.Data.Parameter("@visitorId", visitorIds));
99 101
                     var dt1 = await GetDataTableAsync(srequest, sel1, param);
100 102
                     var tenantid = Convert.ToInt32(dt1.Rows[0]["tenantid"]);
103
+                    var _SeriesId = Convert.ToInt64(visitorInfo.Parameters["seriesid"]);
101 104
                     var visitorType = Convert.ToInt64(visitorInfo.Parameters["visitortype"]);
105
+                    DateTime CreateDate = Convert.ToDateTime(visitorInfo.Parameters["createddate"]);
102 106
                     var visitordata = await visitorManager.GetVisitorByIdAsync(srequest, visitorIds);
107
+                    var _seriesManager = Unibase.Dependency.DependencyConfig.Resolve<Unibase.Platform.Series.Managers.ISeriesManager>();
103 108
                     if (visitordata.Result != null)
104 109
                     {
105 110
                         if (visitorType == 1)
106 111
                         {
107 112
                             stageStatusName = "CheckIn";
108 113
                             code = visitorInfo.Parameters["code"].ToString();
109
-                        }
110
-                        else
111
-                        {
112
-                            stageStatusName = "Pre-Invite";
113
-                            defaultPKValue = visitorIds;
114
-                            code = visitorInfo.Parameters["accesscode"].ToString();
115
-                        }
116
-                        mobileNumber = visitordata.Result.MobileNumber;
117
-                        emailId = visitordata.Result.EmailId;
118
-                        installedAppId = visitordata.Result.Installedappid;
119
-                        visitorName = visitordata.Result.FullName;
120
-                        photourl = visitordata.Result.PhotoUrl;
121
-                        var stages = await stageManager.GetStageByStageStatusAsync(srequest, installedAppId, stageStatusName);
122
-                        var NewStageIds = stages.Result.StageId;
123
-                        var UpdateStages = new Update("bizgazecrm_visitors").Value("stageid", NewStageIds).Value("lastupdateddate", DateTime.Now).Where(Exp.Eq("visitorId", visitorIds));
124
-                        await _repository.ExecuteAsync(request, UpdateStages);
125
-                        var visitorTypeid = visitordata.Result.VisitorType;
126
-                        if (visitorTypeid != 2)
127
-                        {
114
+
115
+                            if (_SeriesId != 0)
116
+                            {
117
+                                var SeriesCodeInfo = await _seriesManager.GenerateSeriesCodeForQueueAsync(request, _SeriesId, DateTime.Now);
118
+                                if (SeriesCodeInfo.Status == ResponseStatus.Error)
119
+                                {
120
+                                    if (requestTrans.StartedLocal) await request.RollbackTransactionAsync();
121
+                                    return ActionResponse<FormActionResponse>.CreateErrorResponse("1", SeriesCodeInfo.Message);
122
+                                }
123
+                                else
124
+                                {
125
+                                    _code = SeriesCodeInfo.Result.SeriesCode;
126
+                                }
127
+                            }
128
+                            mobileNumber = visitordata.Result.MobileNumber;
129
+                            emailId = visitordata.Result.EmailId;
130
+                            installedAppId = visitordata.Result.Installedappid;
131
+                            visitorName = visitordata.Result.FullName;
132
+                            photourl = visitordata.Result.PhotoUrl;
133
+                            var stages = await stageManager.GetStageByStageStatusAsync(srequest, installedAppId, stageStatusName);
134
+                            var NewStageIds = stages.Result.StageId;
135
+                            var UpdateStages = new Update("bizgazecrm_visitors").Value("stageid", NewStageIds).Value("lastupdateddate", DateTime.Now).Where(Exp.Eq("visitorId", visitorIds));
136
+                            await _repository.ExecuteAsync(request, UpdateStages);
137
+                            var visitorTypeid = visitordata.Result.VisitorType;
128 138
                             var options1 = new EntityOptions()
129 139
                             {
130 140
                                 IsIdentity = true,
@@ -183,13 +193,24 @@ namespace Bizgaze.CRM.Visitors.ActionProviders
183 193
                                         if (requestTrans.StartedLocal) await request.RollbackTransactionAsync();
184 194
                                         return ActionResponse<FormActionResponse>.CreateErrorResponse("1", "Contacts Are Not Saved");
185 195
                                     }
186
-                                    var update = new Update("bizgazecrm_visitors").Value("contactid", userid).Where(Exp.Eq("visitorid", visitorIds));
196
+                                    var update = new Update("bizgazecrm_visitors").Value("contactid", userid).Value("code", _code).Where(Exp.Eq("visitorid", visitorIds));
187 197
                                     await _repository.ExecuteAsync(request, update);
188 198
                                 }
189 199
                             }
200
+
201
+                        }
202
+                        else
203
+                        {
204
+                            stageStatusName = "Pre-Invite";
205
+                            defaultPKValue = visitorIds;
206
+                            code = visitorInfo.Parameters["accesscode"].ToString();
207
+                            var stage = await stageManager.GetStageByStageStatusAsync(srequest, installedAppId, stageStatusName);
208
+                            var NewStageId = stage.Result.StageId;
209
+                            var UpdateStage = new Update("bizgazecrm_visitors").Value("stageid", NewStageId).Value("lastupdateddate", DateTime.Now).Where(Exp.Eq("visitorId", visitorIds));
210
+                            await _repository.ExecuteAsync(request, UpdateStage);
190 211
                         }
191 212
                     }
192
-                    var visitorInfos = await visitorManager.GetpreVisitorsAsync(srequest, code);
213
+                    var visitorInfos = await visitorManager.GetpreVisitorsAsync(srequest, _code);
193 214
                     var visitorId = Convert.ToInt64(visitorInfos.Result.VisitorId);
194 215
                     var select = new Unibase.Data.Sql.Select("bizgazecrm_visitorcheckout").AllColumns().Where("visitorId", visitorId);
195 216
                     var parameters = new List<Unibase.Data.Parameter>();
@@ -214,7 +235,7 @@ namespace Bizgaze.CRM.Visitors.ActionProviders
214 235
                         visitor.Add("checkoutdate", DateTime.MinValue);
215 236
                         visitor.Add("rating", 0);
216 237
                         visitor.Add("versionguid", Guid.NewGuid());
217
-                        visitor.Add("uniqueid", code);
238
+                        visitor.Add("uniqueid", _code);
218 239
                         visitor.Add("statusid", (int)RowStatus.Active);
219 240
                         visitor.Add("installedappid", visitorInfos.Result.Installedappid);
220 241
                         visitor.Add("lastupdateddate", DateTime.Now);

Ładowanie…
Anuluj
Zapisz