Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        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();
            }
        }