/// <summary> /// Список данных инсоляций для проекта /// </summary> /// <param name="projectId">Проект</param> /// <returns>Список данных инсоляций проекта</returns> public static List <InsData> Load(int projectId) { if (projectId == 0) { return(null); } var resDatas = new List <InsData>(); using (var ent = GetEntities()) { // Объекты домов для проекта var housesDb = MDMService.GetHouses(projectId); if (housesDb == null || !housesDb.Any()) { return(null); } // Найти данные инс связанные с этими домами // Все объекты инс для домов проекта var insObjectsDb = ent.Insolation_Object.ToList().Where(w => housesDb.Any(h => h.Id == w.Object_id)).ToList(); // данные объектов инсоляции для каждого объекта (InsVer-версия инс, данные объекта) var objectsData = new List <Tuple <Insolation_version, InsObject> >(); foreach (var objDb in insObjectsDb) { var pts = new List <InsPoint>(); foreach (var ptDb in objDb.Insolation_Object_Point) { pts.Add(new InsPoint { InsValue = ptDb.Insolation_type.Insolation_type1, Row = ptDb.Point_row.Value, Column = ptDb.Point_column.Value, }); } var objData = new InsObject { Id = objDb.Object_id, Points = pts }; objectsData.Add(new Tuple <Insolation_version, InsObject>(objDb.Insolation_version, objData)); } // группировка по версии инсоляции var versionsInsObjects = objectsData.GroupBy(g => g.Item1.Insolation_version_id); foreach (var verInsObjects in versionsInsObjects) { var insVer = verInsObjects.First().Item1; var insData = new InsData { Date = insVer.Insolation_version_datetime.Value, Name = insVer.Insolation_version1, Objects = verInsObjects.Select(s => s.Item2).ToList() }; resDatas.Add(insData); } } // Сортировка по дате resDatas.Sort((d1, d2) => DateTime.Compare(d1.Date, d2.Date)); return(resDatas); }
public void GetHousesTest() { int parentId = 1; var houses = MDMService.GetHouses(parentId); Console.WriteLine($"ParentId={parentId}, домов {houses.Count}"); Assert.IsTrue(houses.All(h => h.ObjectType == ObjectTypeEnum.House || (h.ObjectType == ObjectTypeEnum.Block && h.IsBuilding == true))); }
/// <summary> /// Получение корпусов для проекта. /// Корпус - объект МДМ у которого все вложенные объекты уровнем ниже Корпуса или нет вложенных объектов /// </summary> public static List <ObjectMDM> GetHouses(ProjectMDM project) { if (project == null) { return(null); } var objs = MDMService.GetHouses(project.Id); return(objs); }
public static void Init() { Task.Run(() => { try { projects = MDMService.GetProjects().ToDictionary(k => k.Id, v => v); } catch (Exception ex) { Logger.Log.Error(ex, "DbService.Init() - MDMService.GetProjects()."); } }); }
public static List <ProjectMDM> GetProjects() { try { if (projects == null) { projects = MDMService.GetProjects().ToDictionary(k => k.Id, v => v); } return(projects.Values.ToList()); } catch (Exception ex) { Logger.Log.Error(ex, "MDMService.GetProjects();"); } return(null); }
public static ProjectMDM FindProject(int id) { ProjectMDM project = null; if (id != 0) { try { if (projects == null) { projects = MDMService.GetProjects().ToDictionary(k => k.Id, v => v); } projects.TryGetValue(id, out project); } catch (Exception ex) { Logger.Log.Error(ex, "MDMService.GetProjects();"); } } return(project); }
public void GetProjectsTest() { var projects = MDMService.GetProjects(); Assert.AreEqual(projects.Count, 25); }
private void LoadProjects() { var projects = MDMService.GetProjects(); cbProjects.DataSource = projects; }