/// <summary> /// Клонирует струговую установку /// </summary> /// <param name="id">уникальный идентификатор струговой установки, которую нужно клонировать</param> public PlowMachine ClonePlowMachine(PlowMachine pm) { PlowMachine newPlow = CreatePlowMachine(); foreach (var item in pm.Modules) { Module currentModule = item.Value; Module newModule = newPlow.Modules[currentModule.Name]; foreach (var p in currentModule.ModuleParams) { Parameter newP = p.Clone() as Parameter; if (!newModule.ModuleParams.Contains(newP)) { newModule.ModuleParams.Add(newP); } else { newModule.ModuleParams[p.Name].ValueType = p.ValueType; newModule.ModuleParams[p.Name].Value = p.Value; newModule.ModuleParams[p.Name].Description = p.Description; } } } return newPlow; }
private void btnOK_Click(object sender, EventArgs e) { if (plowMachineDataGridView.SelectedRows.Count != 0) { PlowMachine pm = (PlowMachine)plowMachineDataGridView.SelectedRows[0].DataBoundItem; pm = _manager.LoadPlowMachine(pm.PlowMachineId); if (pm.IsPrototype) if (DialogResult.Yes == MessageBox.Show("Вы хотите использовать прототип в качестве основы для новой СУ?", "", MessageBoxButtons.YesNo)) { pm = _manager.ClonePlowMachine(pm); string pmname = string.Empty; using (Dialogs.NameDialog name = new Su.Dialogs.NameDialog()) { name.ShowDialog(); pmname = name.EnteredText; } pm.Name = pmname; } else { pm = null; } SelectedPlowMachine = pm; } DialogResult = DialogResult.OK; Close(); }
public ModesForm(PlowMachine mashine) { InitializeComponent(); plowMashine = mashine; if (plowMashine == null) btnCalculate.Enabled = false; cbModes.DataSource = modes; cbModes.DisplayMember = "Name"; }
/// <summary> /// Сохраняем параметры в струговой установке /// </summary> /// <param name="outputparams">параметры для сохранения</param> /// <param name="plowmachine">струговая установка</param> public static void SaveParams(Parameters outputparams, PlowMachine plowmachine) { foreach (var param in outputparams) { foreach (var module in plowmachine.Modules.Values) { // // выбираме параметры, названия которых совпадают // var moduleparam = from mp in module.ModuleParams where mp.Name.Equals(param.Name, StringComparison.InvariantCultureIgnoreCase) select mp; // если нет таковых...то продолжаем if (moduleparam.Count() == 0) continue; // перезаписываем значение module.ModuleParams[param.Name].Value = param.Value; } } }
/// <summary> /// Достаем параметры из установки /// </summary> /// <param name="names">название параметров</param> /// <param name="plowmachine">струговя установка</param> /// <returns></returns> public static Parameters GetParams(string[] names, PlowMachine plowmachine) { Parameters result = new Parameters(); foreach (var param in names) { foreach (var module in plowmachine.Modules.Values) { // // выбираме параметры, названия которых совпадают // var moduleparam = from mp in module.ModuleParams where mp.Name.Equals(param, StringComparison.InvariantCultureIgnoreCase) select mp; if (moduleparam.Count() != 0) result.Add(moduleparam.First()); } } return result; }
public void DeletePlowMachine(PlowMachine plowMachine) { var pm = from p in _context.PlowMachineEntitySet where p.PlowMachineId == plowMachine.PlowMachineId select p; if (pm.Count() == 0) throw new Exception("Данной СУ не существует в БД"); _context.DeleteObject(pm.First()); _context.SaveChanges(); }
/// <summary> /// Создаём новую струговую установку /// </summary> /// <returns></returns> public PlowMachine CreatePlowMachine() { PlowMachine result = new PlowMachine(); _moduleManager.InitModules(result.PlowMachineId, result.Modules); return result; }
/// <summary> /// Сохранение струговой установки /// </summary> /// <param name="plowmachine"></param> public void SavePlowMachine(PlowMachine plowmachine) { var q = from pm in _context.PlowMachineEntitySet where pm.PlowMachineId == plowmachine.PlowMachineId select pm; if (q.Count() == 0) { #region новая PlowMachineEntity pm = new PlowMachineEntity() { PlowMachineId = plowmachine.PlowMachineId, Name = plowmachine.Name ?? string.Empty, ModifidedOn = DateTime.Now, CreatedOn = DateTime.Now, IsPrototype = plowmachine.IsPrototype }; _context.AddToPlowMachineEntitySet(pm); _context.SaveChanges(); #endregion } else { #region обновляем PlowMachineEntity pm = q.First(); pm.Name = plowmachine.Name ?? string.Empty; pm.IsPrototype = plowmachine.IsPrototype; pm.ModifidedOn = DateTime.Now; _context.SaveChanges(); #endregion } foreach (var module in plowmachine.Modules.Values) { _moduleManager.UpdateParameters(module); } }
/// <summary> /// Загрузить струговую установку /// </summary> /// <param name="id">идентификатор струговой установки</param> public PlowMachine LoadPlowMachine(Guid id) { var q = from pm in _context.PlowMachineEntitySet where pm.PlowMachineId == id select pm; if (q.Count() == 0) return null; PlowMachineEntity pme = q.First(); PlowMachine result = new PlowMachine(id) { Name = pme.Name, IsPrototype = pme.IsPrototype }; _moduleManager.InitModules(id, result.Modules); return result; }