private void button1_Click(object sender, EventArgs e)
 {
     if (openFileDialog1.ShowDialog() == DialogResult.OK)
     {
         ParserExcel.SetPath(openFileDialog1.FileName);
     }
     else
     {
         return;
     }
 }
Exemple #2
0
        /// <summary>
        /// Чтенее файла схемы инсоляции и определение пятен домов
        /// </summary>
        /// <exception cref="Exception">Недопустимое имя пятна дома.</exception>
        public void ReadScheme()
        {
            // Чтение матрицы ячеек первого листа в Excel файле
            var parserExcel = new ParserExcel(this);

            parserExcel.Parse(ProjectInfo.PathInsolation);
            HouseSpots = parserExcel.HouseSpots;

            // Проверка домов
            CheckHouses(HouseSpots);

            // Размер застройки
            var bounds = tree.getBounds();

            ProjectInfo.Size = new Cell(Convert.ToInt32(bounds.max[1]) + 1, Convert.ToInt32(bounds.max[0]) + 1);

            // Инсоляция - все ячейки
            List <Module> insModulesAll = new List <Module>();

            foreach (var houseSpot in HouseSpots)
            {
                var houseOpt = spotOptions.Find(o => o.Name == houseSpot.SpotName);
                if (houseOpt == null)
                {
                    string allowedHouseNames = string.Join(",", spotOptions.Select(h => h.Name));
                    throw new Exception("Имя пятна дома определенное в файле инсоляции - '" + houseSpot.SpotName + "' не соответствует одному из допустимых значений: " + allowedHouseNames);
                }
                houseSpot.SpotOptions = houseOpt;

                // добавление ячеек инсоляции
                foreach (var segment in houseSpot.Segments)
                {
                    insModulesAll.AddRange(segment.ModulesLeft);
                    insModulesAll.AddRange(segment.ModulesRight);
                    if (segment.ModulesSideEnd != null)
                    {
                        insModulesAll.AddRange(segment.ModulesSideEnd);
                    }
                    if (segment.ModulesSideStart != null)
                    {
                        insModulesAll.AddRange(segment.ModulesSideStart);
                    }
                }
                // Определение приоритетной стороны для ЛЛУ в доме
                houseSpot.PriorityLluSide = houseSpot.Segments.First().DefineLluPriority(ProjectInfo.Size);
            }

            // Инсоляция - все ячейки
            ProjectInfo.InsModulesAll = insModulesAll;
        }
 private void button2_Click(object sender, EventArgs e)
 {
     ParserExcel.BaseParse();
 }