Skip to content

Commit 2d16096

Browse files
committed
#2312 improve loading time , by get all id combies from the first load
1 parent 4720c48 commit 2d16096

File tree

1 file changed

+32
-10
lines changed

1 file changed

+32
-10
lines changed

Console/BExIS.Web.Shell/Areas/RPM/BExIS.Modules.Rpm.UI/Controllers/UnitController.cs

Lines changed: 32 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
using BExIS.App.Bootstrap.Attributes;
22
using BExIS.Dlm.Entities.DataStructure;
3+
using BExIS.Dlm.Entities.Meanings;
34
using BExIS.Dlm.Services.DataStructure;
5+
using BExIS.Dlm.Services.Meanings;
6+
using BExIS.Dlm.Services.MetadataStructure;
7+
using BExIS.Modules.Rpm.UI.Models;
48
using BExIS.Modules.Rpm.UI.Models;
59
using BExIS.Modules.Rpm.UI.Models.Dimensions;
610
using BExIS.Modules.Rpm.UI.Models.Units;
711
using BExIS.UI.Helpers;
12+
using BExIS.Utils.NH.Querying;
813
using System;
914
using System.Collections.Generic;
1015
using System.Linq;
11-
using BExIS.Modules.Rpm.UI.Models;
12-
using BExIS.Dlm.Entities.Meanings;
13-
using BExIS.Dlm.Services.Meanings;
14-
using BExIS.Utils.NH.Querying;
1516
using System.Web.Mvc;
16-
using BExIS.Dlm.Services.MetadataStructure;
1717

1818
namespace BExIS.Modules.Rpm.UI.Controllers
1919
{
@@ -35,7 +35,7 @@ public JsonResult GetUnits()
3535
{
3636
using (UnitManager unitManager = new UnitManager())
3737
{
38-
return Json(convertToUnitListItem(unitManager.Repo.Get().OrderBy(u => u.Id).ToList()), JsonRequestBehavior.AllowGet);
38+
return Json(convertToUnitListItem(unitManager.Repo.Query().OrderBy(u => u.Id).ToList()), JsonRequestBehavior.AllowGet);
3939
}
4040
}
4141

@@ -256,12 +256,34 @@ private List<UnitListItem> convertToUnitListItem(List<Unit> units)
256256
using (var metadataAttributeManager = new MetadataAttributeManager())
257257
using (var variableManager = new VariableManager())
258258
{
259+
Dictionary<long, long> maUsage = new Dictionary<long, long>();
260+
Dictionary<long, long> viUsage = new Dictionary<long, long>();
261+
Dictionary<long, long> vtUsage = new Dictionary<long, long>();
262+
263+
// metadata attributes
264+
var mas = metadataAttributeManager.MetadataAttributeRepo.Query(ma => ma.Unit != null).Select(x => new {
265+
Id = x.Id,
266+
UnitId = x.Unit.Id
267+
});
268+
269+
// variable instance
270+
var vis = variableManager.VariableInstanceRepo.Query(v => v.Unit != null).Select(x => new {
271+
Id = x.Id,
272+
UnitId = x.Unit.Id
273+
});
274+
// variable templates
275+
var vts = variableManager.VariableTemplateRepo.Query(v => v.Unit != null).Select(x => new {
276+
Id = x.Id,
277+
UnitId = x.Unit.Id
278+
});
279+
259280
foreach (Unit unit in units)
260-
{
281+
{
261282
bool inUse = false;
262-
inUse = metadataAttributeManager.MetadataAttributeRepo.Query().Any(ma => ma.Unit != null && ma.Unit.Id == unit.Id);
263-
if (!inUse) inUse = variableManager.VariableInstanceRepo.Query().Any(v => v.Unit != null && v.Unit.Id == unit.Id);
264-
if (!inUse) inUse = variableManager.VariableTemplateRepo.Query().Any(v => v.Unit != null && v.Unit.Id == unit.Id);
283+
284+
inUse = mas.Any(ma => ma.UnitId == unit.Id);
285+
if (!inUse) inUse = vis.Any(v => v.UnitId == unit.Id);
286+
if (!inUse) inUse = vts.Any(v => v.UnitId == unit.Id);
265287

266288
unitListItems.Add(convertToUnitListItem(unit, inUse));
267289
}

0 commit comments

Comments
 (0)