示例#1
0
        public override void SetupModule(DataTable changedInfo)
        {
            int     countRows = changedInfo.Rows.Count;
            DataRow row       = changedInfo.Rows[0];

            Number             = row["Номер модуля"].ToString();
            IconPath           = row["Изображение"].ToString();
            Sсheme             = row["Форма модуля"].ToString();
            _dimentions.Lenght = double.Parse(row["Высота модуля (мм)"].ToString());
            _dimentions.Width  = double.Parse(row["Ширина модуля (мм)"].ToString());
            _dimentions.Depth  = double.Parse(row["Глубина модуля (мм)"].ToString());
            _dimentions.A      = double.Parse(row["A размер (мм)"].ToString());
            _dimentions.B      = double.Parse(row["B размер (мм)"].ToString());
            _dimentions.C      = double.Parse(row["C размер (мм)"].ToString());
            _dimentions.D      = double.Parse(row["D размер (мм)"].ToString());
            _moduleAssembly    = row["Сборка модуля"].ToString();
            BackWall           = row["Задняя стенка"].ToString();
            _shelfPo           = row["Полка по ширине секции (шт)"].ToString();
            _shelfMinusTwoMm   = row["Полка - 2мм (шт)"].ToString();
            _shelfForRazdel    = row["Полка разделительная (шт)"].ToString();
            _shelfGlass        = row["Полка стеклянная (шт)"].ToString();

            var formula = IconPath.Split('_')[1];

            _facade._records[0].NumberOnScheme = int.Parse(row["№ схемы фасада"].ToString());
            _calcMode = row["Режим расчёта"].ToString();

            if (_calcMode == "Автоматически")
            {
                KitchenUpFacadeCalculator calculator = new KitchenUpFacadeCalculator();
                calculator.CalculateDimentions(_facade, _dimentions, formula);
            }
            else
            {
                _facade._records[0].HorisontalDimension = double.Parse(row["Горизонтальный размер"].ToString());
                _facade._records[0].VerticalDimension   = double.Parse(row["Вертикальный размер"].ToString());
            }

            _facade._records[0].Type     = row["Тип фасада"].ToString();
            _facade._records[0].Material = row["Материал фасада"].ToString();
        }
示例#2
0
        public override void SetupModule(DataTable changedInfo)
        {
            int     countRows = changedInfo.Rows.Count;
            DataRow row       = changedInfo.Rows[0];

            Number   = row["Номер модуля"].ToString();
            IconPath = row["Изображение"].ToString();
            Sсheme   = row["Форма модуля"].ToString();
            if (!double.TryParse(row["Высота модуля (мм)"].ToString(), out double height))
            {
                throw new ArgumentException("Высота модуля должна быть числом");
            }
            if (height < 0)
            {
                throw new ArgumentException("Высота модуля не может быть отрицательной");
            }
            _dimentions.Height = height;
            if (!double.TryParse(row["Ширина модуля (мм)"].ToString(), out double width))
            {
                throw new ArgumentException("Ширина модуля должна быть числом");
            }
            if (width < 0)
            {
                throw new ArgumentException("Ширина модуля не может быть отрицательной");
            }
            _dimentions.Width = width;


            if (!int.TryParse(row["№ схемы фасада"].ToString(), out int facadeNumber))
            {
                throw new ArgumentException("№ схемы фасада должен быть целым числом");
            }
            _calcMode = row["Режим расчёта"].ToString();
            var formula = IconPath.Split('_')[1];

            if ((facadeNumber > 0) && (_calcMode == "авт. мод."))
            {
                _facade._records[0].HorisontalDimension = double.Parse(row["Ширина"].ToString());
                _facade._records[0].VerticalDimension   = double.Parse(row["Высота"].ToString());
                KitchenUpFacadeCalculator calculator = new KitchenUpFacadeCalculator();
                calculator.CalculateModuleDimentions(_facade, _dimentions, formula);
            }

            if (!double.TryParse(row["Глубина модуля (мм)"].ToString(), out double depth))
            {
                throw new ArgumentException("Глубина модуля должна быть числом");
            }
            ;
            if (depth < 0)
            {
                throw new ArgumentException("Глубина модуля не может быть отрицательной");
            }
            _dimentions.Depth = depth;
            if (!double.TryParse(row["A размер (мм)"].ToString(), out double a))
            {
                throw new ArgumentException("A размер должен быть числом");
            }
            if (a < 0)
            {
                throw new ArgumentException("A размер не может быть отрицательным");
            }
            _dimentions.A = a;
            if (!double.TryParse(row["B размер (мм)"].ToString(), out double b))
            {
                throw new ArgumentException("B размер должен быть числом");
            }
            if (b < 0)
            {
                throw new ArgumentException("B размер не может быть отрицательным");
            }
            _dimentions.B = b;
            if (!double.TryParse(row["C размер (мм)"].ToString(), out double c))
            {
                throw new ArgumentException("C размер должен быть числом");
            }
            if (c < 0)
            {
                throw new ArgumentException("C размер не может быть отрицательным");
            }
            _dimentions.C = c;
            if (!double.TryParse(row["D размер (мм)"].ToString(), out double d))
            {
                throw new ArgumentException("D размер должен быть числом");
            }
            if (d < 0)
            {
                throw new ArgumentException("D размер не может быть отрицательным");
            }
            _dimentions.D     = d;
            _moduleAssembly   = row["Сборка модуля"].ToString();
            BackPanelAssembly = row["Задняя стенка"].ToString();
            _shelfAssembly    = row["Крепление полки"].ToString();
            _shelfsCount      = row["Кол-во полок"].ToString();

            if (facadeNumber <= 0)
            {
                return;
            }
            _facade._records[0].NumberOnScheme = facadeNumber;
            _facade._records[0].Type           = row["Тип фасада"].ToString();
            _facade._records[0].Material       = row["Материал фасада"].ToString();

            for (int i = 0; i < changedInfo.Rows.Count; i++)
            {
                row = changedInfo.Rows[i];
                if (_calcMode == "авт. фас.")
                {
                    KitchenUpFacadeCalculator calculator = new KitchenUpFacadeCalculator();
                    calculator.CalculateFacadeDimentions(_facade, _dimentions, formula, i);
                }
                else
                {
                    _facade._records[i].HorisontalDimension = double.Parse(row["Ширина"].ToString());
                    _facade._records[i].VerticalDimension   = double.Parse(row["Высота"].ToString());
                }
            }
        }