void AddNewGroentijdenSetCommand_Executed(object prm) { // Build model GroentijdenSetModel mgsm = new GroentijdenSetModel(); switch (_Controller.Data.Instellingen.TypeGroentijden) { case GroentijdenTypeEnum.VerlengGroentijden: mgsm.Naam = "VG" + (GroentijdenSets.Count + 1).ToString(); break; default: mgsm.Naam = "MG" + (GroentijdenSets.Count + 1).ToString(); break; } foreach (FaseCyclusModel fcvm in _Controller.Fasen) { GroentijdModel mgm = new GroentijdModel(); mgm.FaseCyclus = fcvm.Define; mgm.Waarde = Settings.Utilities.FaseCyclusUtilities.GetFaseDefaultGroenTijd(fcvm.Type); mgsm.Groentijden.Add(mgm); } // Create ViewModel around the model, add to list GroentijdenSetViewModel mgsvm = new GroentijdenSetViewModel(mgsm); GroentijdenSets.Add(mgsvm); // Rebuild matrix BuildGroentijdenMatrix(); }
void RemoveGroentijdenSetCommand_Executed(object prm) { var changed = false; foreach (var p in _Controller.PeriodenData.Perioden) { if (p.Type == PeriodeTypeEnum.Groentijden && GroentijdenSets.All(x => p.GroentijdenSet != x.Naam)) { p.GroentijdenSet = null; changed = true; } } if (_Controller.PeriodenData.DefaultPeriodeGroentijdenSet == SelectedSet.Naam) { if (_Controller.GroentijdenSets.Count > 0) { _Controller.PeriodenData.DefaultPeriodeGroentijdenSet = _Controller.GroentijdenSets[0].Naam; } else { _Controller.PeriodenData.DefaultPeriodeGroentijdenSet = null; } changed = true; } if (changed) { Messenger.Default.Send(new PeriodenChangedMessage()); } GroentijdenSets.Remove(SelectedSet); var i = 1; foreach (var mgsvm in GroentijdenSets) { switch (_Controller.Data.TypeGroentijden) { case GroentijdenTypeEnum.VerlengGroentijden: mgsvm.Naam = "VG" + i; break; default: mgsvm.Naam = "MG" + i; break; } i++; } SelectedSet = null; if (!GroentijdenSets.Any()) { _Controller.PeriodenData.DefaultPeriodeGroentijdenSet = ""; } BuildGroentijdenMatrix(); CheckGroentijdenSetsWithDefaultPeriode(); }
public override void OnSelected() { var v = _Controller.PeriodenData.DefaultPeriodeGroentijdenSet; GroentijdenSets.Clear(); foreach (var gsm in _Controller.GroentijdenSets) { GroentijdenSets.Add(gsm.Naam); } _Controller.PeriodenData.DefaultPeriodeGroentijdenSet = v; RaisePropertyChanged("DefaultPeriodeGroentijdenSet"); }
public GroentijdenSetsLijstViewModel(ControllerModel controller) { _Controller = controller; BuildGroentijdenMatrix(); MessageManager.Instance.Subscribe(this, new Action <FasenChangedMessage>(OnFasenChanged)); MessageManager.Instance.Subscribe(this, new Action <FasenSortedMessage>(OnFasenSorted)); MessageManager.Instance.Subscribe(this, new Action <DefineChangedMessage>(OnDefineChanged)); foreach (GroentijdenSetModel gsm in _Controller.GroentijdenSets) { GroentijdenSets.Add(new GroentijdenSetViewModel(gsm)); } BuildGroentijdenMatrix(); GroentijdenSets.CollectionChanged += GroentijdenSets_CollectionChanged; }
void RemoveGroentijdenSetCommand_Executed(object prm) { GroentijdenSets.Remove(SelectedSet); int i = 1; foreach (GroentijdenSetViewModel mgsvm in GroentijdenSets) { switch (_Controller.Data.Instellingen.TypeGroentijden) { case GroentijdenTypeEnum.VerlengGroentijden: mgsvm.Naam = "VG" + i.ToString(); break; default: mgsvm.Naam = "MG" + i.ToString(); break; } i++; } SelectedSet = null; BuildGroentijdenMatrix(); }
void AddNewGroentijdenSetCommand_Executed(object prm) { // Build model var mgsm = new GroentijdenSetModel(); switch (_Controller.Data.TypeGroentijden) { case GroentijdenTypeEnum.VerlengGroentijden: mgsm.Naam = "VG" + (GroentijdenSets.Count + 1).ToString(); break; default: mgsm.Naam = "MG" + (GroentijdenSets.Count + 1).ToString(); break; } foreach (var fcvm in _Controller.Fasen) { var mgm = new GroentijdModel(); mgm.FaseCyclus = fcvm.Naam; mgm.Waarde = Settings.Utilities.FaseCyclusUtilities.GetFaseDefaultGroenTijd(fcvm.Type); mgsm.Groentijden.Add(mgm); } // Create ViewModel around the model, add to list var mgsvm = new GroentijdenSetViewModel(mgsm); GroentijdenSets.Add(mgsvm); if (string.IsNullOrWhiteSpace(_Controller.PeriodenData.DefaultPeriodeGroentijdenSet)) { _Controller.PeriodenData.DefaultPeriodeGroentijdenSet = mgsm.Naam; } // Rebuild matrix BuildGroentijdenMatrix(); CheckGroentijdenSetsWithDefaultPeriode(); }
private void CheckGroentijdenSetsWithDefaultPeriode() { if (FasenNames.Count == 0 || GroentijdenSets.Count == 0) { return; } // check if any fase has no greentime for some set and does have them for others var ok = true; foreach (var sg in FasenNames) { // check if the fase has any greentime if (GroentijdenSets.Any(x => x.Groentijden.Any(x2 => x2.FaseCyclus == sg && x2.Waarde.HasValue))) { // now check if there is a set that does not have this fase foreach (var set in GroentijdenSets) { if (set.Groentijden.Any(x => x.FaseCyclus == sg && !x.Waarde.HasValue)) { ok = false; break; } } } if (!ok) { break; } } if (!ok) { var okgts = new List <GroentijdenSetViewModel>(); foreach (var set in GroentijdenSets) { var setok = true; foreach (var gt in set.Groentijden) { if (!gt.Groentijd.Waarde.HasValue) { foreach (var set2 in GroentijdenSets) { if (ReferenceEquals(set, set2)) { continue; } if (set2.Groentijden.Any(x => x.FaseCyclus == gt.FaseCyclus && x.Waarde.HasValue)) { setok = false; break; } } } if (setok == false) { break; } } if (setok) { okgts.Add(set); } } if (okgts.All(x => x.Naam != Controller.PeriodenData.DefaultPeriodeGroentijdenSet)) { Controller.PeriodenData.DefaultPeriodeGroentijdenSet = okgts.FirstOrDefault()?.Naam; if (Controller.PeriodenData.DefaultPeriodeGroentijdenSet != null) { MessageBox.Show("Groentijdenset voor default periode aangepast: " + Controller.PeriodenData.DefaultPeriodeGroentijdenSet, "Groentijdenset default periode aangepast"); } else { MessageBox.Show("Groentijdenset voor default periode kon niet op een geldige waarde worden ingesteld.\nControleer de groentijdensets!", "Groentijdenset default periode aangepast"); } } } }