From fc2713d5ef4b159117d14b4c98639eaeff43eca4 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Mon, 1 Mar 2021 22:36:42 +0000 Subject: [PATCH] --- server/AyaNova/biz/CustomerBiz.cs | 4 ++-- server/AyaNova/biz/WidgetBiz.cs | 13 +++++++++++++ server/AyaNova/models/Widget.cs | 4 ++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/server/AyaNova/biz/CustomerBiz.cs b/server/AyaNova/biz/CustomerBiz.cs index 9b17d7cb..82bc0071 100644 --- a/server/AyaNova/biz/CustomerBiz.cs +++ b/server/AyaNova/biz/CustomerBiz.cs @@ -379,9 +379,9 @@ namespace AyaNova.Biz private async Task PopulateVizFields(Customer o) { if (o.HeadOfficeId != null) - o.HeadOfficeViz = await ct.HeadOffice.AsNoTracking().Select(x => x.Name).FirstOrDefaultAsync(); + o.HeadOfficeViz = await ct.HeadOffice.AsNoTracking().Where(x=>x.Id==o.HeadOfficeId).Select(x => x.Name).FirstOrDefaultAsync(); if (o.ContractId != null) - o.ContractViz = await ct.Contract.AsNoTracking().Select(x => x.Name).FirstOrDefaultAsync(); + o.ContractViz = await ct.Contract.AsNoTracking().Where(x=>x.Id==o.ContractId).Select(x => x.Name).FirstOrDefaultAsync(); } diff --git a/server/AyaNova/biz/WidgetBiz.cs b/server/AyaNova/biz/WidgetBiz.cs index 25c4d639..5b0289bc 100644 --- a/server/AyaNova/biz/WidgetBiz.cs +++ b/server/AyaNova/biz/WidgetBiz.cs @@ -365,8 +365,14 @@ namespace AyaNova.Biz var batchResults = await ct.Widget.AsNoTracking().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(typeof(UserType).ToString(), UserTranslationId); + foreach (Widget w in orderedList) { + await PopulateVizFields(w, UserTypesEnumList); var jo = JObject.FromObject(w); if (!JsonUtil.JTokenIsNullOrEmpty(jo["CustomFields"])) jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]); @@ -376,6 +382,13 @@ namespace AyaNova.Biz return ReportData; } + //populate viz fields from provided object + private async Task PopulateVizFields(Widget o, List userTypesEnumList) + { + if (o.UserId != null) + o.UserViz = await ct.User.AsNoTracking().Where(x => x.Id == o.UserId).Select(x => x.Name).FirstOrDefaultAsync(); + o.UserTypeViz = userTypesEnumList.Where(x => x.Id == (long)o.UserType).Select(x => x.Name).First(); + } diff --git a/server/AyaNova/models/Widget.cs b/server/AyaNova/models/Widget.cs index 5ecf5dfe..a765b5a7 100644 --- a/server/AyaNova/models/Widget.cs +++ b/server/AyaNova/models/Widget.cs @@ -21,6 +21,8 @@ namespace AyaNova.Models public decimal? DollarAmount { get; set; } public bool? Active { get; set; } public UserType UserType { get; set; } + [NotMapped] + public string UserTypeViz { get; set; } public DateTime? StartDate { get; set; } public DateTime? EndDate { get; set; } public string Notes { get; set; } @@ -34,6 +36,8 @@ namespace AyaNova.Models public User User { get; set; } public long? UserId { get; set; } + [NotMapped] + public string UserViz { get; set; } public Widget() {