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();
        }
예제 #2
0
        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();
        }
예제 #3
0
        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();
        }
예제 #6
0
        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();
        }
예제 #7
0
        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");
                    }
                }
            }
        }