diff --git a/CRM.Visitors/ActionProviders/UpdateVisitorBeenHerePreAction.cs b/CRM.Visitors/ActionProviders/UpdateVisitorBeenHerePreAction.cs index 1275ec4..769a31c 100644 --- a/CRM.Visitors/ActionProviders/UpdateVisitorBeenHerePreAction.cs +++ b/CRM.Visitors/ActionProviders/UpdateVisitorBeenHerePreAction.cs @@ -1,6 +1,7 @@ using Bizgaze.CRM; using Bizgaze.CRM.Visitors.Infos; using Bizgaze.CRM.Visitors.Managers; +using MongoDB.Bson; using System; using System.Collections.Generic; using System.Dynamic; @@ -17,6 +18,7 @@ using Unibase.Platform.Data; using Unibase.Platform.Forms.Providers; using Unibase.Platform.Keys; using Unibase.Platform.Tenants.Localization; +using System.Text.Json; namespace Bizgaze.CRM.Visitors.ActionProviders { @@ -68,6 +70,7 @@ namespace Bizgaze.CRM.Visitors.ActionProviders var stageManager = Unibase.Dependency.DependencyConfig.Resolve(); var visitorManager = Unibase.Dependency.DependencyConfig.Resolve(); var dictObj = obj as IDictionary; + var visitorItems = dictObj.ContainsKey("VisitorItems") ? dictObj["VisitorItems"] : null; var MobileNumber = dictObj["mobilenumber"].ToString(); var employeeId = Convert.ChangeType(dictObj["employeeid"].ToString(), typeof(long)); var cityId = Convert.ChangeType(dictObj["cityid"].ToString(), typeof(long)); @@ -91,7 +94,6 @@ namespace Bizgaze.CRM.Visitors.ActionProviders stageStatusName = "CheckIn"; } var code = visitorsinfo.Result.Code; - var agreement = visitorsinfo.Result.Agreement; visitorsinfo.Result.Agreement = agreement; dictObj["agreement"] = true; @@ -114,7 +116,6 @@ namespace Bizgaze.CRM.Visitors.ActionProviders IsExcludeFromAudit = false, Id = 0, }; - dynamic visitor = new Dictionary(); visitor.Add("createdby", srequest.Identity.UserId); visitor.Add("createddate", DateTime.Now); @@ -125,24 +126,22 @@ namespace Bizgaze.CRM.Visitors.ActionProviders visitor.Add("contactid", contactid); visitor.Add("code", visitorsinfo.Result.Code); visitor.Add("agreement", true); - visitor.Add("employeeid", employeeId); visitor.Add("seriesid", visitorsinfo.Result.SeriesId); visitor.Add("stageid", visitorsinfo.Result.StageId); visitor.Add("tenantid", visitorsinfo.Result.TenantId); visitor.Add("installedappid", visitorsinfo.Result.Installedappid); visitor.Add("fullname", visitorsinfo.Result.FullName); visitor.Add("futureinvitation", visitorsinfo.Result.FutureInvitation); + visitor.Add("employeeid", employeeId); visitor.Add("cityid", cityId); visitor.Add("purposeofvisit", purposeofvisit); visitor.Add("title", visitorsinfo.Result.Title); visitor.Add("visitortype", visitorsinfo.Result.VisitorType); var response = await _repository.SaveAsync(request, vistoroptions, visitor); - if (response.Status == ResponseStatus.Error) { return ActionResponse.CreateErrorResponse("1", "Visitor Check Out Data Not Saved"); } - var _visitorId = Convert.ToInt64(response.Result["_Id"].ToString()); var vistoroptions1 = new EntityOptions() { @@ -169,10 +168,37 @@ namespace Bizgaze.CRM.Visitors.ActionProviders var response1 = await _repository.SaveAsync(request, vistoroptions1, visitor1); if (response1.Status == ResponseStatus.Error) { - return ActionResponse.CreateErrorResponse("1", "Visitor Check Out Data Not Saved"); } - + if (dictObj.ContainsKey("VisitorItems")) + { + var Items = Convert.ChangeType(dictObj["VisitorItems"].ToString(), typeof(object)).ToString(); + var deserializeObj = System.Text.Json.JsonSerializer.Deserialize>>(Items); + var visitoritem = deserializeObj[0]["visitoritemname"].ToString(); + var serial = deserializeObj[0]["serialnumber"].ToString(); + var quantity = Convert.ToInt64(deserializeObj[0]["quantity"].ToString()); + var brand = deserializeObj[0]["brand"].ToString(); + var vistoroptions2 = new EntityOptions() + { + IsIdentity = true, + IsNewEntity = true, + TableName = "bizgazecrm_visitoritems", + PkColumn = "visitoritemid", + IsExcludeFromAudit = false, + Id = 0, + }; + dynamic visitor2 = new Dictionary(); + visitor2.Add("visitorid", _visitorId); + visitor2.Add("visitoritemname", visitoritem); + visitor2.Add("quantity", quantity); + visitor2.Add("brand", brand); + visitor2.Add("serialnumber", serial); + var response2 = await _repository.SaveAsync(request, vistoroptions2, visitor2); + if (response2.Status == ResponseStatus.Error) + { + return ActionResponse.CreateErrorResponse("1", "Visitor Check Out Data Not Saved"); + } + } var lastdate = visitorsinfo.Result.LastUpdatedDate; visitorsinfo.Result.LastUpdatedDate = DateTime.Now; var installedAppId = visitorsinfo.Result.Installedappid; @@ -186,8 +212,6 @@ namespace Bizgaze.CRM.Visitors.ActionProviders { return ActionResponse.CreateErrorResponse("1", "visitor Not Found"); } - returnresponse = new FormActionResponse(); - returnresponse.Obj = dictObj as ExpandoObject; returnresponse.PkValue = defaultPKValue; return ActionResponse.CreateSuccessResponse("success", returnresponse); } @@ -200,7 +224,6 @@ namespace Bizgaze.CRM.Visitors.ActionProviders }; } } - } }