From 7c1c946449b8351f0f36206bd205c85bb7584128 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Tue, 2 Mar 2021 00:27:58 +0000 Subject: [PATCH] --- server/AyaNova/biz/UserBiz.cs | 29 ++++++++++++++++++++++++----- server/AyaNova/models/User.cs | 8 ++++++++ 2 files changed, 32 insertions(+), 5 deletions(-) diff --git a/server/AyaNova/biz/UserBiz.cs b/server/AyaNova/biz/UserBiz.cs index 8feb9972..67b45274 100644 --- a/server/AyaNova/biz/UserBiz.cs +++ b/server/AyaNova/biz/UserBiz.cs @@ -388,11 +388,11 @@ namespace AyaNova.Biz //Fields not sent with the put object //(it's only location is in the db and since this putObject is replacing the dbObject we need to set it again here) putObject.Salt = dbObject.Salt; - putObject.CurrentAuthToken=dbObject.CurrentAuthToken; - putObject.DlKey=dbObject.DlKey; - putObject.DlKeyExpire=dbObject.DlKeyExpire; - putObject.PasswordResetCode=dbObject.PasswordResetCode; - putObject.PasswordResetCodeExpire=dbObject.PasswordResetCodeExpire; + putObject.CurrentAuthToken = dbObject.CurrentAuthToken; + putObject.DlKey = dbObject.DlKey; + putObject.DlKeyExpire = dbObject.DlKeyExpire; + putObject.PasswordResetCode = dbObject.PasswordResetCode; + putObject.PasswordResetCodeExpire = dbObject.PasswordResetCodeExpire; //NOTE: It's valid to call this without intending to change login or password (null values) @@ -878,9 +878,15 @@ namespace AyaNova.Biz var batchResults = await ct.User.AsNoTracking().Include(z => z.UserOptions).Where(z => batch.Contains(z.Id)).ToArrayAsync(); //order the results back into original var orderedList = from id in batch join z in batchResults on id equals z.Id select z; + + //cache frequent viz data + //usertypes + var UserTypesEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList(StringUtil.TrimTypeName(typeof(UserType).ToString()), UserTranslationId); + //foreach (User w in orderedList) foreach (var w in orderedList) { + await PopulateVizFields(w, UserTypesEnumList); var jo = JObject.FromObject(w); if (!JsonUtil.JTokenIsNullOrEmpty(jo["CustomFields"])) jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]); @@ -894,7 +900,20 @@ namespace AyaNova.Biz return ReportData; } + //populate viz fields from provided object + private async Task PopulateVizFields(User o, List userTypesEnumList) + { + if (o.CustomerId != null) + o.CustomerViz = await ct.Customer.AsNoTracking().Where(x => x.Id == o.CustomerId).Select(x => x.Name).FirstOrDefaultAsync(); + if (o.HeadOfficeId != null) + o.HeadOfficeViz = await ct.HeadOffice.AsNoTracking().Where(x => x.Id == o.HeadOfficeId).Select(x => x.Name).FirstOrDefaultAsync(); + + if (o.VendorId != null) + o.VendorViz = await ct.Customer.AsNoTracking().Where(x => x.Id == o.VendorId).Select(x => x.Name).FirstOrDefaultAsync(); + + o.UserTypeViz = userTypesEnumList.Where(x => x.Id == (long)o.UserType).Select(x => x.Name).First(); + } //////////////////////////////////////////////////////////////////////////////////////////////// // IMPORT EXPORT diff --git a/server/AyaNova/models/User.cs b/server/AyaNova/models/User.cs index 1945286d..a4dec620 100644 --- a/server/AyaNova/models/User.cs +++ b/server/AyaNova/models/User.cs @@ -63,12 +63,20 @@ namespace AyaNova.Models public AuthorizationRoles Roles { get; set; } [Required] public UserType UserType { get; set; } + [NotMapped] + public string UserTypeViz { get; set; } [MaxLength(255)] public string EmployeeNumber { get; set; } public string Notes { get; set; } public long? CustomerId { get; set; } + [NotMapped] + public string CustomerViz { get; set; } public long? HeadOfficeId { get; set; } + [NotMapped] + public string HeadOfficeViz { get; set; } public long? VendorId { get; set; } + [NotMapped] + public string VendorViz { get; set; } public string Wiki { get; set; } public string CustomFields { get; set; } public List Tags { get; set; }