浏览代码

New Api methods were added in VisitorManager.Async.cs

Shanmukh 1年前
父节点
当前提交
13a71a6a5b
共有 1 个文件被更改,包括 92 次插入43 次删除
  1. 92
    43
      CRM.Visitors/Managers/VisitorManager.Async.cs

+ 92
- 43
CRM.Visitors/Managers/VisitorManager.Async.cs 查看文件

13
 using Unibase.Platform.DataSources.Attributes;
13
 using Unibase.Platform.DataSources.Attributes;
14
 using Unibase.Platform.Managers;
14
 using Unibase.Platform.Managers;
15
 using Unibase.Data.Sql;
15
 using Unibase.Data.Sql;
16
+using System.Text.Json;
17
+using Org.BouncyCastle.Asn1.Ocsp;
18
+using ChoETL;
19
+using MongoDB.Libmongocrypt;
20
+using iText.StyledXmlParser.Jsoup.Select;
16
 
21
 
17
 namespace Bizgaze.CRM.Visitors.Managers
22
 namespace Bizgaze.CRM.Visitors.Managers
18
 {
23
 {
19
     internal partial class VisitorManager : BaseManager, IVisitorManager
24
     internal partial class VisitorManager : BaseManager, IVisitorManager
20
     {
25
     {
26
+        [SelectMethod(ApiName = "Get  pre visitors", AppName = "crm", Description = "Get pre visitors", UniqueName = "bizgaze_transact_visitors_Getprevisitors", MethodName = "Getprevisitors", ModuleName = "visitors", PackageName = "bizgaze", ParamName1 = "code")]
27
+        public async Task<SelectResponse<Bizgaze.CRM.Visitors.Infos.Visitor>> GetpreVisitorsAsync(SelectRequest srequest, string code)
28
+        {
29
+            var exp = srequest.Filter();
30
+            exp &= Exp.Eq(Bizgaze.CRM.Visitors.Infos.Visitor.Property.Code.ToString(), code);
31
+            srequest.Filter(exp);
32
+            var visData = await GetSingleAsync<Bizgaze.CRM.Visitors.Infos.Visitor>(srequest);
33
+
34
+            if (visData.Result != null)
35
+            {
36
+                var refStatusId = visData.Result.RefStatusId;
37
+                if (refStatusId != 2)
38
+                {
39
+                    return visData;
40
+
41
+                }
42
+            }
43
+            else
44
+            {
45
+                return SelectResponse<Bizgaze.CRM.Visitors.Infos.Visitor>.CreateErrorResponse("404", "Please Enter A Valid Uniqueid!");
46
+
47
+            }
48
+            return SelectResponse<Bizgaze.CRM.Visitors.Infos.Visitor>.CreateErrorResponse("404", "you have been already checked out");
49
+
50
+        }
21
 
51
 
22
         [SelectMethod(ApiName = "Get  pre visitors id", AppName = "crm", Description = "Get pre visitors id", UniqueName = "bizgaze_transact_visitors_Getprevisitorsid", MethodName = "getprevisitorid", ModuleName = "visitors", PackageName = "bizgaze", ParamName1 = "code")]
52
         [SelectMethod(ApiName = "Get  pre visitors id", AppName = "crm", Description = "Get pre visitors id", UniqueName = "bizgaze_transact_visitors_Getprevisitorsid", MethodName = "getprevisitorid", ModuleName = "visitors", PackageName = "bizgaze", ParamName1 = "code")]
23
         public async Task<SelectResponse> GetVisitorsIDAsync(SelectRequest srequest, string code)
53
         public async Task<SelectResponse> GetVisitorsIDAsync(SelectRequest srequest, string code)
25
             var exp = srequest.Filter();
55
             var exp = srequest.Filter();
26
             exp &= Exp.Eq(Bizgaze.CRM.Visitors.Infos.Visitor.Property.Code.ToString(), code);
56
             exp &= Exp.Eq(Bizgaze.CRM.Visitors.Infos.Visitor.Property.Code.ToString(), code);
27
             srequest.Filter(exp);
57
             srequest.Filter(exp);
28
-            var select = "select visitorid,* from bizgazecrm_visitors  where code='"+code+"' order by createddate desc";
58
+            var visData = await GetSingleAsync<Bizgaze.CRM.Visitors.Infos.Visitor>(srequest);
59
+            var refstatusid = visData.Result.RefStatusId;
60
+            if (refstatusid == 2)
61
+            {
62
+                return SelectResponse.CreateErrorResponse("417", "you have been already checked out");
63
+            }
64
+            if (refstatusid == 3)
65
+            {
66
+                return SelectResponse.CreateErrorResponse("417", "please Check-In First");
67
+            }
68
+            var select = "select visitorid,* from bizgazecrm_visitors  where code='" + code + "' order by createddate desc";
29
             var dt = await _dbContext.GetTableAsync(GetConnectionAsync(srequest), select, Unibase.Data.Enums.InstructionType.Query, null);
69
             var dt = await _dbContext.GetTableAsync(GetConnectionAsync(srequest), select, Unibase.Data.Enums.InstructionType.Query, null);
30
             var visitorid = dt.Rows[0]["visitorid"].ToString();
70
             var visitorid = dt.Rows[0]["visitorid"].ToString();
31
-            var select1 = "select e.contactname,c.cityname,n.mobilenumber,* from bizgazecrm_visitors v inner join bizgazecrm_visitornumbers n on n.visitorid=v.visitorid inner join bizgazecrm_contacts e on e.contactid = v.employeeid inner join bizgazecrm_cities c on c.cityid = v.cityid where v.visitorid=" + visitorid;
71
+            var select1 = "select e.contactname,c.cityname,* from bizgazecrm_visitors v  inner join bizgazecrm_contacts e on e.contactid = v.employeeid inner join bizgazecrm_cities c on c.cityid = v.cityid where v.visitorid=" + visitorid;
32
             var dt1 = await _dbContext.GetTableAsync(GetConnectionAsync(srequest), select1, Unibase.Data.Enums.InstructionType.Query, null);
72
             var dt1 = await _dbContext.GetTableAsync(GetConnectionAsync(srequest), select1, Unibase.Data.Enums.InstructionType.Query, null);
33
             var tabledata = Unibase.Core.Helpers.JsonHelper.ToJson(dt1);
73
             var tabledata = Unibase.Core.Helpers.JsonHelper.ToJson(dt1);
34
             string json = System.Text.Json.JsonSerializer.Serialize(tabledata);
74
             string json = System.Text.Json.JsonSerializer.Serialize(tabledata);
46
             return data;
86
             return data;
47
         }
87
         }
48
         #endregion
88
         #endregion
49
-
89
+        #region Getting data By VisitorId
90
+         public async Task<SelectResponse> GetVisitordataByIdAsync(SelectRequest request, long VisitorId)
91
+        {
92
+            var exp = request.Filter();
93
+            exp = exp & Unibase.Data.Expressions.Exp.Eq(Infos.Visitor.Property.VisitorId.ToString(), VisitorId);
94
+            request.Filter(exp);
95
+            //var sql = "select c.cityname, e.contactname,* from bizgazecrm_visitors v inner join bizgazecrm_contacts e on e.contactid = v.employeeid inner join bizgazecrm_cities c on c.cityid = v.cityid where visitorid=" + VisitorId;
96
+            var sql = "select d.visitorid,d.fullname,d.code,(d.checkindate|| ' & ' ||d.checkintime) as datetime,d.cityname,d.contactname,Case when d.purposeofvisit=1 then 'Interview'  when d.purposeofvisit=2 then 'Official Meeting'  when d.purposeofvisit=3 then 'Meeting an Employee'  when d.purposeofvisit=4 then 'Package Delivery' when d.purposeofvisit=5 then 'Others' end as purposeofvisittype,d.photourl from (select v.visitorid,v.fullname,v.code,v.photourl,  TO_CHAR(v.checkindate, 'DD/MM/YYYY') as checkindate,  UPPER(TO_CHAR(v.checkindate, 'HH:MI:SS AM')) AS checkintime,v.purposeofvisit,c.cityname, e.contactname from bizgazecrm_visitors v inner join bizgazecrm_contacts e on e.contactid = v.employeeid inner join bizgazecrm_cities c on c.cityid = v.cityid)d where visitorid = " + VisitorId;
97
+            var dt = await _dbContext.GetTableAsync(GetConnectionAsync(request), sql, Unibase.Data.Enums.InstructionType.Query, null);
98
+            var tabledata = Unibase.Core.Helpers.JsonHelper.ToJson(dt);
99
+            string json = System.Text.Json.JsonSerializer.Serialize(tabledata);
100
+            return new SelectResponse() { Result = json };
101
+        }
102
+        #endregion
103
+      
50
         #region Get Visitors html
104
         #region Get Visitors html
51
         //This method is used to get the html of a visitor. It takes a Visitor ID as an argument, then gets the related templates from Unibase.Platform.Templates.Managers.ITemplateManager, if the templates are found the id is assigned to the variable "templateid" and the information from GetVisitorByIdAsync is used to populate the fields in the template. In the end, the PrintTemplate object is returned with the PrintHTML.
105
         //This method is used to get the html of a visitor. It takes a Visitor ID as an argument, then gets the related templates from Unibase.Platform.Templates.Managers.ITemplateManager, if the templates are found the id is assigned to the variable "templateid" and the information from GetVisitorByIdAsync is used to populate the fields in the template. In the end, the PrintTemplate object is returned with the PrintHTML.
52
         [SelectMethod(ApiName = "Get visitors Html", AppName = "crm", Description = "Get visitors Html", UniqueName = "bizgaze_transact_visitors_GetvisitorsHtml", MethodName = "getvisitorshtml", ModuleName = "visitors", PackageName = "bizgaze", ParamName1 = "visitorid")]
106
         [SelectMethod(ApiName = "Get visitors Html", AppName = "crm", Description = "Get visitors Html", UniqueName = "bizgaze_transact_visitors_GetvisitorsHtml", MethodName = "getvisitorshtml", ModuleName = "visitors", PackageName = "bizgaze", ParamName1 = "visitorid")]
53
         public async Task<SelectResponse<Unibase.Platform.Templates.Infos.PrintTemplate>> GetVisitorshtmlAsync(SelectRequest srequest, long VisitorId)
107
         public async Task<SelectResponse<Unibase.Platform.Templates.Infos.PrintTemplate>> GetVisitorshtmlAsync(SelectRequest srequest, long VisitorId)
54
         {
108
         {
109
+            var exp = srequest.Filter();
110
+            exp = exp & Unibase.Data.Expressions.Exp.Eq(Infos.Visitor.Property.VisitorId.ToString(), VisitorId);
111
+            srequest.Filter(exp);
112
+            var data = await GetSingleAsync<Infos.Visitor>(srequest);
55
             long templateid = 0;
113
             long templateid = 0;
56
-            //var appManager = Unibase.Dependency.DependencyConfig.Resolve<Unibase.Platform.Apps.Managers.IAppManager>();
57
             var templateManager = Unibase.Dependency.DependencyConfig.Resolve<Unibase.Platform.Templates.Managers.ITemplateManager>();
114
             var templateManager = Unibase.Dependency.DependencyConfig.Resolve<Unibase.Platform.Templates.Managers.ITemplateManager>();
58
             var templateInfos = await templateManager.GetTemplatesAsync(srequest, "Bizgaze_Extension_CRM_CRM_TemplateProvider_Visitors");
115
             var templateInfos = await templateManager.GetTemplatesAsync(srequest, "Bizgaze_Extension_CRM_CRM_TemplateProvider_Visitors");
59
             if (templateInfos.Result != null && templateInfos.Result.Count > 0)
116
             if (templateInfos.Result != null && templateInfos.Result.Count > 0)
60
             {
117
             {
61
                 templateid = templateInfos.Result[0].TemplateId;
118
                 templateid = templateInfos.Result[0].TemplateId;
62
             }
119
             }
120
+            var sql = "select code from bizgazecrm_visitors where visitorid=" + VisitorId;
121
+            var selectSQL = new Unibase.Data.Sql.Select().FromQuery(sql).AllColumns();
122
+            var dt = await GetDataTableAsync(srequest, selectSQL, null);
123
+            var code = dt.Rows[0]["code"].ToString();
124
+            var sql1 = "select visitorid from bizgazecrm_visitors where code='" + code + "' order by createddate desc";
125
+            var selectSQL1 = new Unibase.Data.Sql.Select().FromQuery(sql1).AllColumns();
126
+            var dt1 = await GetDataTableAsync(srequest, selectSQL1, null);
127
+            var id = Convert.ToInt64 (dt1.Rows[0]["visitorid"]);
63
             var result = new SelectResponse<Unibase.Platform.Templates.Infos.PrintTemplate>();
128
             var result = new SelectResponse<Unibase.Platform.Templates.Infos.PrintTemplate>();
64
             var printTemplate = new Unibase.Platform.Templates.Infos.PrintTemplate();
129
             var printTemplate = new Unibase.Platform.Templates.Infos.PrintTemplate();
65
-            //var templateManager = //Unibase.Dependency.DependencyConfig.Resolve<Unibase.Platform.Templates.Managers.ITemplateManager>();
66
             var _dbContext = DependencyConfig.Resolve<Unibase.Data.IDbContext>();
130
             var _dbContext = DependencyConfig.Resolve<Unibase.Data.IDbContext>();
67
             Unibase.Platform.Templates.Helpers.TemplateHelper helper = new Unibase.Platform.Templates.Helpers.TemplateHelper(_dbContext);
131
             Unibase.Platform.Templates.Helpers.TemplateHelper helper = new Unibase.Platform.Templates.Helpers.TemplateHelper(_dbContext);
68
             var VisitorInfo_ = await GetVisitorByIdAsync(srequest, VisitorId);
132
             var VisitorInfo_ = await GetVisitorByIdAsync(srequest, VisitorId);
74
                 {
138
                 {
75
                     return SelectResponse<Unibase.Platform.Templates.Infos.PrintTemplate>.CreateErrorResponse("1", "Template Not Found");
139
                     return SelectResponse<Unibase.Platform.Templates.Infos.PrintTemplate>.CreateErrorResponse("1", "Template Not Found");
76
                 }
140
                 }
77
-                string CreatedDate = VisitorInfo_.Result.CheckInDate.ToString("dd-MM-yyyy hh:mm:ss tt");
78
                 var template = System.Web.HttpUtility.UrlDecode(templateInfo.TemplateText.ToString());
141
                 var template = System.Web.HttpUtility.UrlDecode(templateInfo.TemplateText.ToString());
142
+                //var code = VisitorInfo_.Result.Code;
143
+                 var mobilenumber = VisitorInfo_.Result.MobileNumber;
144
+                //var visitorcard = await GetVisitorsIDAsync(srequest, code);
145
+                 //var purposeofvisit = await VisitorsbyMobileNumberAsync(srequest, mobilenumber);
146
+                // var purposeofvisittype = purposeofvisit.Result.PurposeOfVisitType;
147
+                 var visitordata = await GetVisitordataByIdAsync(srequest, id);
148
+                 var scanobj = System.Text.Json.JsonSerializer.Deserialize<List<ExpandoObject>>(visitordata.Result);
149
+                 var _Obj = scanobj[0] as IDictionary<string, dynamic>;
150
+                //string checkindate = _Obj["checkindate"].ToString();
151
+                string Checkindate = VisitorInfo_.Result.CheckInDate.ToString("dd-MM-yyyy hh:mm:ss tt");
79
                 string multiTemplateText = "";
152
                 string multiTemplateText = "";
80
                 if (template.Contains("{{fullname}}"))
153
                 if (template.Contains("{{fullname}}"))
81
                 {
154
                 {
82
-                    template = template.Replace("{{fullname}}", VisitorInfo_.Result.FullName);
155
+                    template = template.Replace("{{fullname}}", _Obj["fullname"].ToString());
83
                 }
156
                 }
84
                 if (template.Contains("{{cityname}}"))
157
                 if (template.Contains("{{cityname}}"))
85
                 {
158
                 {
86
-                    template = template.Replace("{{cityname}}", VisitorInfo_.Result.CityName);
159
+                    template = template.Replace("{{cityname}}", _Obj["cityname"].ToString());
87
                 }
160
                 }
88
                 if (template.Contains("{{purposeofvisit}}"))
161
                 if (template.Contains("{{purposeofvisit}}"))
89
                 {
162
                 {
90
-                    template = template.Replace("{{purposeofvisit}}", VisitorInfo_.Result.PurposeOfVisitType);
163
+                    template = template.Replace("{{purposeofvisit}}", _Obj["purposeofvisittype"].ToString());
91
                 }
164
                 }
92
                 if (template.Contains("{{phonenumber}}"))
165
                 if (template.Contains("{{phonenumber}}"))
93
                 {
166
                 {
94
-                    template = template.Replace("{{phonenumber}}", VisitorInfo_.Result.MobileNumber);
167
+                    template = template.Replace("{{phonenumber}}", mobilenumber);
95
                 }
168
                 }
96
                 if (template.Contains("{{code}}"))
169
                 if (template.Contains("{{code}}"))
97
                 {
170
                 {
98
-                    template = template.Replace("{{code}}", VisitorInfo_.Result.Code);
171
+                    template = template.Replace("{{code}}", _Obj["code"].ToString());
99
                 }
172
                 }
100
                 if (template.Contains("{{createddate}}"))
173
                 if (template.Contains("{{createddate}}"))
101
                 {
174
                 {
102
-                    template = template.Replace("{{createddate}}", CreatedDate.ToString());
175
+                    template = template.Replace("{{createddate}}", _Obj["datetime"].ToString());
103
                 }
176
                 }
104
                 if (template.Contains("{{photourl}}"))
177
                 if (template.Contains("{{photourl}}"))
105
                 {
178
                 {
106
-                    template = template.Replace("{{photourl}}", VisitorInfo_.Result.PhotoUrl);
179
+                    template = template.Replace("{{photourl}}", _Obj["photourl"].ToString());
107
                 }
180
                 }
108
                 if (template.Contains("{{HostName}}"))
181
                 if (template.Contains("{{HostName}}"))
109
                 {
182
                 {
110
-                    template = template.Replace("{{HostName}}", VisitorInfo_.Result.HostName);
183
+                    template = template.Replace("{{HostName}}", _Obj["contactname"].ToString());
111
                 }
184
                 }
112
                 if (template.Contains("{{imageurl}}"))
185
                 if (template.Contains("{{imageurl}}"))
113
                 {
186
                 {
114
                     template = template.Replace("{{imageurl}}", VisitorInfo_.Result.ImageUrl);
187
                     template = template.Replace("{{imageurl}}", VisitorInfo_.Result.ImageUrl);
115
                 }
188
                 }
116
-
117
                 multiTemplateText = template;
189
                 multiTemplateText = template;
118
-
119
                 printTemplate.PrintHTML = multiTemplateText;
190
                 printTemplate.PrintHTML = multiTemplateText;
120
                 printTemplate.FileName = "Visitors";
191
                 printTemplate.FileName = "Visitors";
121
                 printTemplate.PkId = VisitorId;
192
                 printTemplate.PkId = VisitorId;
134
          /***/
205
          /***/
135
 
206
 
136
 
207
 
137
-        [SelectMethod(ApiName = "Get  pre visitors", AppName = "crm", Description = "Get pre visitors", UniqueName = "bizgaze_transact_visitors_Getprevisitors", MethodName = "Getprevisitors", ModuleName = "visitors", PackageName = "bizgaze", ParamName1 = "code")]
138
-        public async Task<SelectResponse<Bizgaze.CRM.Visitors.Infos.Visitor>> GetpreVisitorsAsync(SelectRequest srequest, string code)
139
-        {
140
-            var exp = srequest.Filter();
141
-            exp &= Exp.Eq(Bizgaze.CRM.Visitors.Infos.Visitor.Property.Code.ToString(), code);
142
-            srequest.Filter(exp);
143
-            var visData = await GetSingleAsync<Bizgaze.CRM.Visitors.Infos.Visitor>(srequest);
144
-
145
-            if (visData.Result != null)
146
-            {
147
-                var refStatusId = visData.Result.RefStatusId;
148
-                if (refStatusId != 2)
149
-                {
150
-                    return visData;
151
-
152
-                }
153
-            }
154
-            else
155
-            {
156
-                return SelectResponse<Bizgaze.CRM.Visitors.Infos.Visitor>.CreateErrorResponse("404", "Please Enter A Valid Uniqueid!");
157
-
158
-            }
159
-            return SelectResponse<Bizgaze.CRM.Visitors.Infos.Visitor>.CreateErrorResponse("404", "you have been already checked out");
160
-
161
-        }
162
-
208
+        
163
 
209
 
164
         #region Visitor Agreement
210
         #region Visitor Agreement
165
         /* 
211
         /* 
230
         public async Task<SelectResponse<Bizgaze.CRM.Visitors.Infos.Visitor>> VisitorsbyMobileNumberAsync(SelectRequest srequest, string MobileNumber)
276
         public async Task<SelectResponse<Bizgaze.CRM.Visitors.Infos.Visitor>> VisitorsbyMobileNumberAsync(SelectRequest srequest, string MobileNumber)
231
         {
277
         {
232
             var exp = srequest.Filter();
278
             var exp = srequest.Filter();
233
-            exp = exp & Exp.Eq(Bizgaze.CRM.Visitors.Infos.Visitor.Property.MobileNumber.ToString(), MobileNumber);
279
+            var select = "select visitorid,* from bizgazecrm_visitornumbers  where mobilenumber='" + MobileNumber + "' order by lastupdateddate desc";
280
+            var dt = await _dbContext.GetTableAsync(GetConnectionAsync(srequest), select, Unibase.Data.Enums.InstructionType.Query, null);
281
+            var visitorid = dt.Rows[0]["visitorid"];
282
+            exp = exp & Exp.Eq(Bizgaze.CRM.Visitors.Infos.Visitor.Property.VisitorId.ToString(), visitorid);
234
             srequest.Filter(exp);
283
             srequest.Filter(exp);
235
             return await GetSingleAsync<Bizgaze.CRM.Visitors.Infos.Visitor>(srequest);
284
             return await GetSingleAsync<Bizgaze.CRM.Visitors.Infos.Visitor>(srequest);
236
         }
285
         }

正在加载...
取消
保存