Пример #1
0
        /// <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);
        }
Пример #2
0
        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)));
        }
Пример #3
0
        /// <summary>
        /// Получение корпусов для проекта.
        /// Корпус - объект МДМ у которого все вложенные объекты уровнем ниже Корпуса или нет вложенных объектов
        /// </summary>
        public static List <ObjectMDM> GetHouses(ProjectMDM project)
        {
            if (project == null)
            {
                return(null);
            }
            var objs = MDMService.GetHouses(project.Id);

            return(objs);
        }
Пример #4
0
 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().");
         }
     });
 }
Пример #5
0
 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);
 }
Пример #6
0
        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);
        }
Пример #7
0
        public void GetProjectsTest()
        {
            var projects = MDMService.GetProjects();

            Assert.AreEqual(projects.Count, 25);
        }
Пример #8
0
        private void LoadProjects()
        {
            var projects = MDMService.GetProjects();

            cbProjects.DataSource = projects;
        }