Procházet zdrojové kódy

New Api methods were added in VisitorManager.Async.cs

Shanmukh před 1 rokem
rodič
revize
13a71a6a5b
1 změnil soubory, kde provedl 92 přidání a 43 odebrání
  1. 92
    43
      CRM.Visitors/Managers/VisitorManager.Async.cs

+ 92
- 43
CRM.Visitors/Managers/VisitorManager.Async.cs Zobrazit soubor

@@ -13,11 +13,41 @@ using Unibase.Platform.Data;
13 13
 using Unibase.Platform.DataSources.Attributes;
14 14
 using Unibase.Platform.Managers;
15 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 22
 namespace Bizgaze.CRM.Visitors.Managers
18 23
 {
19 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 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 53
         public async Task<SelectResponse> GetVisitorsIDAsync(SelectRequest srequest, string code)
@@ -25,10 +55,20 @@ namespace Bizgaze.CRM.Visitors.Managers
25 55
             var exp = srequest.Filter();
26 56
             exp &= Exp.Eq(Bizgaze.CRM.Visitors.Infos.Visitor.Property.Code.ToString(), code);
27 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 69
             var dt = await _dbContext.GetTableAsync(GetConnectionAsync(srequest), select, Unibase.Data.Enums.InstructionType.Query, null);
30 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 72
             var dt1 = await _dbContext.GetTableAsync(GetConnectionAsync(srequest), select1, Unibase.Data.Enums.InstructionType.Query, null);
33 73
             var tabledata = Unibase.Core.Helpers.JsonHelper.ToJson(dt1);
34 74
             string json = System.Text.Json.JsonSerializer.Serialize(tabledata);
@@ -46,23 +86,47 @@ namespace Bizgaze.CRM.Visitors.Managers
46 86
             return data;
47 87
         }
48 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 104
         #region Get Visitors html
51 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 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 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 113
             long templateid = 0;
56
-            //var appManager = Unibase.Dependency.DependencyConfig.Resolve<Unibase.Platform.Apps.Managers.IAppManager>();
57 114
             var templateManager = Unibase.Dependency.DependencyConfig.Resolve<Unibase.Platform.Templates.Managers.ITemplateManager>();
58 115
             var templateInfos = await templateManager.GetTemplatesAsync(srequest, "Bizgaze_Extension_CRM_CRM_TemplateProvider_Visitors");
59 116
             if (templateInfos.Result != null && templateInfos.Result.Count > 0)
60 117
             {
61 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 128
             var result = new SelectResponse<Unibase.Platform.Templates.Infos.PrintTemplate>();
64 129
             var printTemplate = new Unibase.Platform.Templates.Infos.PrintTemplate();
65
-            //var templateManager = //Unibase.Dependency.DependencyConfig.Resolve<Unibase.Platform.Templates.Managers.ITemplateManager>();
66 130
             var _dbContext = DependencyConfig.Resolve<Unibase.Data.IDbContext>();
67 131
             Unibase.Platform.Templates.Helpers.TemplateHelper helper = new Unibase.Platform.Templates.Helpers.TemplateHelper(_dbContext);
68 132
             var VisitorInfo_ = await GetVisitorByIdAsync(srequest, VisitorId);
@@ -74,48 +138,55 @@ namespace Bizgaze.CRM.Visitors.Managers
74 138
                 {
75 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 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 152
                 string multiTemplateText = "";
80 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 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 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 165
                 if (template.Contains("{{phonenumber}}"))
93 166
                 {
94
-                    template = template.Replace("{{phonenumber}}", VisitorInfo_.Result.MobileNumber);
167
+                    template = template.Replace("{{phonenumber}}", mobilenumber);
95 168
                 }
96 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 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 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 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 185
                 if (template.Contains("{{imageurl}}"))
113 186
                 {
114 187
                     template = template.Replace("{{imageurl}}", VisitorInfo_.Result.ImageUrl);
115 188
                 }
116
-
117 189
                 multiTemplateText = template;
118
-
119 190
                 printTemplate.PrintHTML = multiTemplateText;
120 191
                 printTemplate.FileName = "Visitors";
121 192
                 printTemplate.PkId = VisitorId;
@@ -134,32 +205,7 @@ namespace Bizgaze.CRM.Visitors.Managers
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 210
         #region Visitor Agreement
165 211
         /* 
@@ -230,7 +276,10 @@ namespace Bizgaze.CRM.Visitors.Managers
230 276
         public async Task<SelectResponse<Bizgaze.CRM.Visitors.Infos.Visitor>> VisitorsbyMobileNumberAsync(SelectRequest srequest, string MobileNumber)
231 277
         {
232 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 283
             srequest.Filter(exp);
235 284
             return await GetSingleAsync<Bizgaze.CRM.Visitors.Infos.Visitor>(srequest);
236 285
         }

Loading…
Zrušit
Uložit