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(); }
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()); } } }