From 6a2b43af73baa54209fd05b71d903eb09563f489 Mon Sep 17 00:00:00 2001 From: allauddin Date: Sun, 9 Jul 2023 19:20:40 +0530 Subject: [PATCH] UpdateVisitorBeenHerePreAction.cs Changes --- .../UpdateVisitorBeenHerePreAction.cs | 94 ++++++++++++++++--- 1 file changed, 81 insertions(+), 13 deletions(-) diff --git a/CRM.Visitors/ActionProviders/UpdateVisitorBeenHerePreAction.cs b/CRM.Visitors/ActionProviders/UpdateVisitorBeenHerePreAction.cs index fab9d27..57ecd9d 100644 --- a/CRM.Visitors/ActionProviders/UpdateVisitorBeenHerePreAction.cs +++ b/CRM.Visitors/ActionProviders/UpdateVisitorBeenHerePreAction.cs @@ -1,4 +1,5 @@ using Bizgaze.CRM; +using Bizgaze.CRM.Visitors.Infos; using Bizgaze.CRM.Visitors.Managers; using System; using System.Collections.Generic; @@ -56,17 +57,12 @@ namespace Bizgaze.CRM.Visitors.ActionProviders return (int)Unibase.Platform.Forms.Enums.FormActionProvider.PreAction; } } - //public ActionResponse Execute(ActionRequest request, object IdValue, ExpandoObject obj, List docParametersList, ref long defaultPKValue) - //{ - // return null; - - //} public async Task> ExecuteAsync(ActionRequest request, FormActionProviderObject providerObject) { var IdValue = providerObject.IdValue; var srequest = SelectRequest.FromRequest(request); var obj = providerObject.RequestObject; - var returnresponse = new FormActionResponse(); + var returnresponse = new FormActionResponse(); var defaultPKValue = providerObject.DefaultPKValue; var stageManager = Unibase.Dependency.DependencyConfig.Resolve(); var visitorManager = Unibase.Dependency.DependencyConfig.Resolve(); @@ -77,6 +73,7 @@ namespace Bizgaze.CRM.Visitors.ActionProviders var stageStatusName = ""; if (visitorsinfo.Result != null) { + stageStatusName = "CheckIn"; visitorid = visitorsinfo.Result.VisitorId; dictObj["visitorid"] = visitorid; @@ -85,20 +82,91 @@ namespace Bizgaze.CRM.Visitors.ActionProviders var installedAppId = visitorsinfo.Result.Installedappid; var stage = await stageManager.GetStageByStageStatusAsync(srequest, installedAppId, stageStatusName); var NewStageId = stage.Result.StageId; - var UpdateStage = new Update("bizgazecrm_visitors").Value("stageid", NewStageId).Value("lastupdateddate", DateTime.Now).Where(Exp.Eq("visitorId", visitorid)); + var UpdateStage = new Update("bizgazecrm_visitors").Value("stageid", NewStageId).Where(Exp.Eq("visitorId", visitorid)); await _repository.ExecuteAsync(request, UpdateStage); - } + var fullname = visitorsinfo.Result.FullName; + var sql = "select userid from unibasecmn_users where username='" + fullname + "'"; + var select = new Unibase.Data.Sql.Select("unibasecmn_users").AllColumns().Where("username", fullname); + var parameters = new List(); + parameters.Add(new Unibase.Data.Parameter("@username", fullname)); + var dt = await GetDataTableAsync(srequest, select, parameters); + var contactid = dt.Rows[0]["userid"]; + var vistoroptions = new EntityOptions() + { + IsIdentity = true, + IsNewEntity = true, + TableName = "bizgazecrm_visitors", + PkColumn = "visitorid", + IsExcludeFromAudit = false, + Id = 0, + }; + dynamic visitor = new Dictionary(); + visitor.Add("createdby", srequest.Identity.UserId); + visitor.Add("createddate", DateTime.Now); + visitor.Add("statusid", visitorsinfo.Result.StatusId); + visitor.Add("alternatenumber", visitorsinfo.Result.AlternateNumber); + visitor.Add("organizationname", visitorsinfo.Result.OrganizationName); + visitor.Add("checkindate", DateTime.Now); + visitor.Add("contactid", contactid); + visitor.Add("code", visitorsinfo.Result.Code); + visitor.Add("agreement", visitorsinfo.Result.Agreement); + visitor.Add("employeeid", visitorsinfo.Result.EmployeeId); + visitor.Add("seriesid", visitorsinfo.Result.SeriesId); + visitor.Add("stageid", visitorsinfo.Result.StageId); + visitor.Add("tenantid", visitorsinfo.Result.TenantId); + visitor.Add("lastupdateddate", DateTime.Now); + visitor.Add("installedappid", visitorsinfo.Result.Installedappid); + visitor.Add("fullname", visitorsinfo.Result.FullName); + visitor.Add("futureinvitation", visitorsinfo.Result.FutureInvitation); + visitor.Add("comingfrom", visitorsinfo.Result.ComingFrom); + visitor.Add("purposeofvisit", visitorsinfo.Result.PurposeOfVisit); + visitor.Add("title", visitorsinfo.Result.Title); + 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()); + // Int64 _visitorId = Convert.ToInt64(response.Result["_Id"]); + var vistoroptions1 = new EntityOptions() + { + IsIdentity = true, + IsNewEntity = true, + TableName = "bizgazecrm_visitorcheckout", + PkColumn = "visitorcheckoutid", + IsExcludeFromAudit = false, + Id = 0, + }; + dynamic visitor1 = new Dictionary(); + visitor1.Add("createdby", srequest.Identity.UserId); + visitor1.Add("visitorid", _visitorId); + visitor1.Add("checkindate", visitorsinfo.Result.CheckInDate); + visitor1.Add("tenantid", visitorsinfo.Result.TenantId); + visitor1.Add("comments", ""); + visitor1.Add("checkoutdate", DateTime.MinValue); + visitor1.Add("rating", 0); + visitor1.Add("versionguid", Guid.NewGuid()); + visitor1.Add("uniqueid", visitorsinfo.Result.Code); + visitor1.Add("statusid", (int)RowStatus.Active); + visitor1.Add("installedappid", visitorsinfo.Result.Installedappid); + visitor1.Add("lastupdateddate", DateTime.Now); + var response1 = await _repository.SaveAsync(request, vistoroptions1, visitor1); + if (response1.Status == ResponseStatus.Error) + { + + return ActionResponse.CreateErrorResponse("1", "Visitor Check Out Data Not Saved"); + } + + } else { return ActionResponse.CreateErrorResponse("1", "visitor Not Found"); } var updateValues = new Dictionary(); - updateValues.Add("agreement", true); - updateValues.Add("checkindate", DateTime.Now); - var updateQry = new Update("bizgazecrm_visitors").Values(updateValues).Where(Exp.Eq("visitorid", visitorid)); + var updateQry = new Update("bizgazecrm_visitors").Value("agreement", true).Value("lastupdateddate", DateTime.Now).Where(Exp.Eq("visitorid", visitorid)); var ds = await _repository.ExecuteAsync(request, updateQry); - var UpdateCheckoutDate = new Update("bizgazecrm_visitorcheckout").Value("checkoutdate", DateTime.MinValue).Where(Exp.Eq("visitorId", visitorid)); - await _repository.ExecuteAsync(request, UpdateCheckoutDate); + // var UpdateCheckoutDate = new Update("bizgazecrm_visitorcheckout").Value("checkoutdate", DateTime.MinValue).Where(Exp.Eq("visitorId", visitorid)); + //await _repository.ExecuteAsync(request, UpdateCheckoutDate); returnresponse.Obj = dictObj as ExpandoObject; returnresponse.PkValue = defaultPKValue; return ActionResponse.CreateSuccessResponse("success", returnresponse);