private void btnTableVarParams_Click(object sender, RoutedEventArgs e) { StringOfVarParametersAxis stringOfVar = null; StringOfVarParamsAxisVM varParamsVM = null; StringOfVarParamsAxisView view = null; switch (((Button)sender).Name) { case "btnAddUp": if (((PremagAxisVM)DataContext).VariationDataMainData.Count == 0) { return; } //int max_idCulc = ((PremagAxisVM)DataContext).VariationDataUpMagnets.Count != 0 ? // ((PremagAxisVM)DataContext).VariationDataUpMagnets.Select(i => i.ID_culc).Max() : // 0; int max_idCulc = 0; int max_idSlot = ((PremagAxisVM)DataContext).VariationDataMainData.Select(i => i.ID_slot).Max(); //int max_idSlot = ((PremagAxisVM)DataContext).VariationDataUpMagnets.Count != 0 ? // ((PremagAxisVM)DataContext).VariationDataUpMagnets.Select(i => i.ID_slot).Max() : // ((PremagAxisVM)DataContext).VariationDataMainData.Select(i => i.ID_slot).Max(); if (((PremagAxisVM)DataContext).VariationDataUpMagnets.Count != 0) { max_idCulc = ((PremagAxisVM)DataContext).VariationDataUpMagnets.Select(i => i.ID_culc).Max(); max_idSlot = ((PremagAxisVM)DataContext).VariationDataUpMagnets.Select(i => i.ID_slot).Max(); //for all slots for (int i = 0; i < max_idSlot; i++) { StringOfVarParametersAxis varParametersMaxid = ((PremagAxisVM)DataContext).VariationDataUpMagnets.FirstOrDefault( i => i.ID_culc == max_idCulc && i.ID_slot == max_idSlot ); stringOfVar = (StringOfVarParametersAxis)varParametersMaxid.Clone(); stringOfVar.ID_culc = max_idCulc + 1; stringOfVar.ID_slot = i + 1; //stringOfVar = new StringOfVarParametersAxis { ID_culc = max_idCulc + 1, ID_slot = i + 1 }; varParamsVM = new StringOfVarParamsAxisVM(stringOfVar); view = new StringOfVarParamsAxisView { DataContext = varParamsVM, Owner = this }; view.ShowDialog(); if (!varParamsVM.IsOK) { return; } ((PremagAxisVM)DataContext).VariationDataUpMagnets.Add(varParamsVM.Model); //add to db ((PremagAxisVM)DataContext).VariationDataDownMagnets.Add(varParamsVM.Model); } } else { //for all slots for (int i = 0; i < max_idSlot; i++) { stringOfVar = new StringOfVarParametersAxis { ID_culc = max_idCulc + 1, ID_slot = i + 1 }; varParamsVM = new StringOfVarParamsAxisVM(stringOfVar); view = new StringOfVarParamsAxisView { DataContext = varParamsVM, Owner = this }; view.ShowDialog(); if (!varParamsVM.IsOK) { return; } ((PremagAxisVM)DataContext).VariationDataUpMagnets.Add(varParamsVM.Model); //add to db ((PremagAxisVM)DataContext).VariationDataDownMagnets.Add(varParamsVM.Model); } } btnEditUp.Visibility = Visibility.Visible; btnEditDwn.Visibility = Visibility.Visible; break; case "btnEditUp": if (dtgrdVarParamsUp.SelectedItem != null) { StringOfVarParametersAxis selectedStringOfVar = ((PremagAxisVM)DataContext).VariationDataUpMagnets.Where( i => i.ID_culc == ((StringOfVarParametersAxis)dtgrdVarParamsUp.SelectedItem).ID_culc && i.ID_slot == ((StringOfVarParametersAxis)dtgrdVarParamsUp.SelectedItem).ID_slot).FirstOrDefault(); stringOfVar = (StringOfVarParametersAxis)selectedStringOfVar.Clone(); varParamsVM = new StringOfVarParamsAxisVM(stringOfVar); view = new StringOfVarParamsAxisView { DataContext = varParamsVM, Owner = this }; view.ShowDialog(); if (!varParamsVM.IsOK) { return; } //modify the db StringOfVarParametersAxis removeItem = ((PremagAxisVM)DataContext).VariationDataUpMagnets.Where( i => i.ID_culc == varParamsVM.Model.ID_culc && i.ID_slot == varParamsVM.Model.ID_slot).FirstOrDefault(); ((PremagAxisVM)DataContext).VariationDataUpMagnets.Remove(removeItem); ((PremagAxisVM)DataContext).VariationDataUpMagnets.Add(varParamsVM.Model); SortOfVariationDataUpMagnets(); } break; case "btnEditDwn": if (dtgrdVarParamsDwn.SelectedItem != null) { StringOfVarParametersAxis selectedStringOfVar = ((PremagAxisVM)DataContext).VariationDataDownMagnets.Where( i => i.ID_culc == ((StringOfVarParametersAxis)dtgrdVarParamsDwn.SelectedItem).ID_culc && i.ID_slot == ((StringOfVarParametersAxis)dtgrdVarParamsDwn.SelectedItem).ID_slot).FirstOrDefault(); stringOfVar = (StringOfVarParametersAxis)selectedStringOfVar.Clone(); varParamsVM = new StringOfVarParamsAxisVM(stringOfVar); view = new StringOfVarParamsAxisView { DataContext = varParamsVM, Owner = this }; view.ShowDialog(); if (!varParamsVM.IsOK) { return; } //modify the db StringOfVarParametersAxis removeItem = ((PremagAxisVM)DataContext).VariationDataDownMagnets.Where( i => i.ID_culc == varParamsVM.Model.ID_culc && i.ID_slot == varParamsVM.Model.ID_slot).FirstOrDefault(); ((PremagAxisVM)DataContext).VariationDataDownMagnets.Remove(removeItem); ((PremagAxisVM)DataContext).VariationDataDownMagnets.Add(varParamsVM.Model); #region sorting SortOfVariationDataDownMagnets(); #endregion } break; case "btnDelUp": if (dtgrdVarParamsUp.SelectedItem != null) { int idCulc = ((StringOfVarParametersAxis)dtgrdVarParamsUp.SelectedItem).ID_culc; for (int i = 0; i < ((PremagAxisVM)DataContext).VariationDataUpMagnets.Count; i++) { if (((PremagAxisVM)DataContext).VariationDataUpMagnets[i].ID_culc == idCulc) { ((PremagAxisVM)DataContext).VariationDataUpMagnets.Remove(((PremagAxisVM)DataContext).VariationDataUpMagnets[i]); ((PremagAxisVM)DataContext).VariationDataDownMagnets.Remove(((PremagAxisVM)DataContext).VariationDataDownMagnets[i]); i--; } } } if (((PremagAxisVM)DataContext).VariationDataUpMagnets.Count == 0) { btnEditUp.Visibility = Visibility.Hidden; } btnEditDwn.Visibility = Visibility.Hidden; break; } }
private void btnTableMD_Click(object sender, RoutedEventArgs e) { PremagAxisMainDataModel stringOfVar = null; PremagAxisMDVM varParamsVM = null; AxisMDView view = null; switch (((Button)sender).Name) { case "btnAddMD": int max_idSlot = 0; if (((PremagAxisVM)DataContext).VariationDataMainData.Count != 0) { max_idSlot = ((PremagAxisVM)DataContext).VariationDataMainData.Select(i => i.ID_slot).Max(); PremagAxisMainDataModel varParametersMaxid = ((PremagAxisVM)DataContext).VariationDataMainData.FirstOrDefault(i => i.ID_slot == max_idSlot); stringOfVar = (PremagAxisMainDataModel)varParametersMaxid.Clone(); stringOfVar.ID_slot = ++max_idSlot; } else { stringOfVar = new PremagAxisMainDataModel { ID_slot = ++max_idSlot } }; //new item varParamsVM = new PremagAxisMDVM(stringOfVar); view = new AxisMDView { DataContext = varParamsVM, Owner = this }; view.ShowDialog(); if (!varParamsVM.IsOK) { return; } ((PremagAxisVM)DataContext).VariationDataMainData.Add(varParamsVM.Model); //add to db #region modify of variation data if (((PremagAxisVM)DataContext).VariationDataUpMagnets.Count != 0) { List <StringOfVarParametersAxis> appendVarParams = new List <StringOfVarParametersAxis>(); foreach (StringOfVarParametersAxis vpUp in ((PremagAxisVM)DataContext).VariationDataUpMagnets) { StringOfVarParametersAxis item = new StringOfVarParametersAxis { ID_culc = vpUp.ID_culc, ID_slot = varParamsVM.Model.ID_slot }; if (!appendVarParams.Contains(item)) { appendVarParams.Add(item); } } foreach (StringOfVarParametersAxis vp in appendVarParams) { ((PremagAxisVM)DataContext).VariationDataUpMagnets.Add(vp); ((PremagAxisVM)DataContext).VariationDataDownMagnets.Add(vp); } SortOfVariationDataUpMagnets(); SortOfVariationDataDownMagnets(); } #endregion btnEditMD.Visibility = Visibility.Visible; //btnEditUp.Visibility = Visibility.Visible; btnEditDwn.Visibility = Visibility.Visible; break; case "btnEditMD": if (dtgrdMainParams.SelectedItem != null) { PremagAxisMainDataModel selectedStringOfVar = ((PremagAxisVM)DataContext).VariationDataMainData.Where( i => i.ID_slot == ((PremagAxisMainDataModel)dtgrdMainParams.SelectedItem).ID_slot).FirstOrDefault(); stringOfVar = (PremagAxisMainDataModel)selectedStringOfVar.Clone(); varParamsVM = new PremagAxisMDVM(stringOfVar); view = new AxisMDView { DataContext = varParamsVM, Owner = this }; view.ShowDialog(); if (!varParamsVM.IsOK) { return; } //modify the db PremagAxisMainDataModel removeItem = ((PremagAxisVM)DataContext).VariationDataMainData.Where(i => i.ID_slot == varParamsVM.Model.ID_slot).FirstOrDefault(); ((PremagAxisVM)DataContext).VariationDataMainData.Remove(removeItem); ((PremagAxisVM)DataContext).VariationDataMainData.Add(varParamsVM.Model); #region sorting var sortshot = ((PremagAxisVM)DataContext).VariationDataMainData.OrderBy(i => i.ID_slot); ObservableCollection <PremagAxisMainDataModel> snapshot = new ObservableCollection <PremagAxisMainDataModel>(); foreach (PremagAxisMainDataModel item in sortshot) { snapshot.Add(item); } ((PremagAxisVM)DataContext).VariationDataMainData.Clear(); foreach (PremagAxisMainDataModel item in snapshot) { ((PremagAxisVM)DataContext).VariationDataMainData.Add(item); } #endregion } break; case "btnDelMD": if (dtgrdMainParams.SelectedItem != null) { int idSlot = ((PremagAxisMainDataModel)dtgrdMainParams.SelectedItem).ID_slot; ((PremagAxisVM)DataContext).VariationDataMainData.Remove((PremagAxisMainDataModel)dtgrdMainParams.SelectedItem); for (int i = 0; i < ((PremagAxisVM)DataContext).VariationDataUpMagnets.Count; i++) { if (((PremagAxisVM)DataContext).VariationDataUpMagnets[i].ID_slot == idSlot) { ((PremagAxisVM)DataContext).VariationDataUpMagnets.Remove(((PremagAxisVM)DataContext).VariationDataUpMagnets[i]); ((PremagAxisVM)DataContext).VariationDataDownMagnets.Remove(((PremagAxisVM)DataContext).VariationDataDownMagnets[i]); } } } if (((PremagAxisVM)DataContext).VariationDataMainData.Count == 0) { btnEditMD.Visibility = Visibility.Hidden; btnEditUp.Visibility = Visibility.Hidden; btnEditDwn.Visibility = Visibility.Hidden; } break; } }
public StringOfVarParamsAxisVM(StringOfVarParametersAxis model) => Model = model;