private void RemoveConflictGroepCommand_Executed(object obj) { var _SelectedConflictGroep = SelectedConflictGroep; ConflictGroepen.Remove(SelectedConflictGroep); if (ConflictGroepen.Count == 0) { SignaalGroepInstellingen.RemoveAll(); } else if (SignaalGroepInstellingen.Count > 0) { foreach (var fc in _SelectedConflictGroep.Fasen) { if ((!ConflictGroepen.SelectMany(x => x.Fasen).Any() || !ConflictGroepen.SelectMany(x => x.Fasen).Where(y => y.FaseCyclus == fc.FaseCyclus).Any()) && SignaalGroepInstellingen.Where(x => x.FaseCyclus == fc.FaseCyclus).Any()) { var instvm = SignaalGroepInstellingen.Where(x => x.FaseCyclus == fc.FaseCyclus).First(); SignaalGroepInstellingen.Remove(instvm); SignaalGroepInstellingen.BubbleSort(); SignaalGroepInstellingen.RebuildList(); } } } SelectedConflictGroep = null; MessengerInstance.Send(new ControllerDataChangedMessage()); }
void AddRemoveFaseCommand_Executed(object prm) { var fc = prm as RoBuGroverTabFaseViewModel; SelectedFaseCyclus = fc; if (fc.CanBeAddedToConflictGroep && !fc.IsInConflictGroep) { var fcm = new RoBuGroverConflictGroepFaseModel(); fcm.FaseCyclus = fc.FaseCyclusNaam; var fcvm = new RoBuGroverConflictGroepFaseViewModel(fcm); SelectedConflictGroep.Fasen.Add(fcvm); if (!SignaalGroepInstellingen.Where(x => x.FaseCyclus == fc.FaseCyclusNaam).Any()) { var inst = new RoBuGroverFaseCyclusInstellingenModel(); inst.FaseCyclus = fc.FaseCyclusNaam; if (Controller.Fasen.Where(x => x.Naam == fc.FaseCyclusNaam).Any()) { var type = Controller.Fasen.Where(x => x.Naam == fc.FaseCyclusNaam).First().Type.ToString(); DefaultsProvider.Default.SetDefaultsOnModel(inst, type); } var instvm = new RoBuGroverSignaalGroepInstellingenViewModel(inst); try { var addfc = _Controller.Fasen.Where(x => x.Naam == instvm.FaseCyclus).First(); if (addfc.Type != FaseTypeEnum.Fiets || addfc.Type == FaseTypeEnum.Voetganger) { foreach (DetectorModel dm in addfc.Detectoren) { if (dm.Type == DetectorTypeEnum.Lang) { var hd = new RoBuGroverHiaatDetectorModel(); hd.Detector = dm.Naam; DefaultsProvider.Default.SetDefaultsOnModel(hd); instvm.HiaatDetectoren.Add(new RoBuGroverHiaatDetectorViewModel(hd)); } if (dm.Type == DetectorTypeEnum.Kop) { var fd = new RoBuGroverFileDetectorModel(); fd.Detector = dm.Naam; DefaultsProvider.Default.SetDefaultsOnModel(fd); instvm.FileDetectoren.Add(new RoBuGroverFileDetectorViewModel(fd)); } } } } catch { } SignaalGroepInstellingen.Add(instvm); SignaalGroepInstellingen.BubbleSort(); SignaalGroepInstellingen.RebuildList(); } MessengerInstance.Send(new ControllerDataChangedMessage()); } else if (fc.IsInConflictGroep) { // Use custom method instead of Remove method: // it removes based on name instead of reference RoBuGroverConflictGroepFaseViewModel removevm = null; removevm = SelectedConflictGroep.Fasen.Where(x => x.FaseCyclus == fc.FaseCyclusNaam).First(); SelectedConflictGroep.Fasen.Remove(removevm); if (!ConflictGroepen.SelectMany(x => x.Fasen).Where(y => y.FaseCyclus == fc.FaseCyclusNaam).Any() && SignaalGroepInstellingen.Where(x => x.FaseCyclus == fc.FaseCyclusNaam).Any()) { var instvm = SignaalGroepInstellingen.Where(x => x.FaseCyclus == fc.FaseCyclusNaam).First(); SignaalGroepInstellingen.Remove(instvm); SignaalGroepInstellingen.BubbleSort(); SignaalGroepInstellingen.RebuildList(); } MessengerInstance.Send(new ControllerDataChangedMessage()); } foreach (RoBuGroverTabFaseViewModel tfc in Fasen) { tfc.UpdateConflictGroepInfo(); } }