public void OnControllerHasOVChanged(ControllerHasOVChangedMessage message)
        {
            switch (message.Type)
            {
            case Models.Enumerations.OVIngreepTypeEnum.Geen:
                OVIngreepSGParameters.RemoveAll();
                break;

            case Models.Enumerations.OVIngreepTypeEnum.Uitgebreid:
                foreach (var fcm in _Controller.Fasen)
                {
                    if (OVIngreepSGParameters.Any(x => x.FaseCyclus == fcm.Naam))
                    {
                        continue;
                    }
                    var prms = new OVIngreepSignaalGroepParametersModel();
                    DefaultsProvider.Default.SetDefaultsOnModel(prms);
                    prms.FaseCyclus = fcm.Naam;
                    OVIngreepSGParameters.Add(new OVIngreepSignaalGroepParametersViewModel(prms));
                }
                OVIngreepSGParameters.BubbleSort();
                OVIngreepSGParameters.RebuildList();
                break;
            }
        }
예제 #2
0
 public void CopyValueNoMessaging(OVIngreepSignaalGroepParametersModel sgprm)
 {
     var t = sgprm.GetType();
     var props = t.GetProperties();
     foreach(var prop in props)
     {
         if(prop.PropertyType.IsValueType)
         {
             prop.SetValue(this.GetItem(), prop.GetValue(sgprm));
         }
     }
     RaisePropertyChanged("");
 }
        public void OnFasenChanging(FasenChangingMessage message)
        {
            if (message.AddedFasen != null)
            {
                foreach (var fcm in message.AddedFasen)
                {
                    // PT Conflict prms
                    if (Controller.OVData.OVIngreepType != Models.Enumerations.OVIngreepTypeEnum.Geen)
                    {
                        var prms = new OVIngreepSignaalGroepParametersModel();
                        _setDefaultsAction?.Invoke(prms, null);
                        prms.FaseCyclus = fcm.Naam;
                        Controller.OVData.OVIngreepSignaalGroepParameters.Add(prms);
                    }

                    // Module settings
                    var fcmlm = new FaseCyclusModuleDataModel()
                    {
                        FaseCyclus = fcm.Naam
                    };
                    _setDefaultsAction?.Invoke(fcmlm, null);
                    Controller.ModuleMolen.FasenModuleData.Add(fcmlm);

                    // Green times
                    foreach (var set in Controller.GroentijdenSets)
                    {
                        var mgm = new GroentijdModel {
                            FaseCyclus = fcm.Naam
                        };
                        _setDefaultsAction(mgm, fcm.Type.ToString());
                        set.Groentijden.Add(mgm);
                    }
                }
            }
            if (message.RemovedFasen != null)
            {
                foreach (var fcm in message.RemovedFasen)
                {
                    // PT Conflict prms
                    if (Controller.OVData.OVIngreepType != Models.Enumerations.OVIngreepTypeEnum.Geen)
                    {
                        OVIngreepSignaalGroepParametersModel _prms = null;
                        foreach (var prms in Controller.OVData.OVIngreepSignaalGroepParameters)
                        {
                            if (prms.FaseCyclus == fcm.Naam)
                            {
                                _prms = prms;
                            }
                        }
                        if (_prms != null)
                        {
                            Controller.OVData.OVIngreepSignaalGroepParameters.Remove(_prms);
                        }
                    }

                    // Module settings
                    FaseCyclusModuleDataModel fcvm = null;
                    foreach (var f in Controller.ModuleMolen.FasenModuleData)
                    {
                        if (fcm.Naam == f.FaseCyclus)
                        {
                            fcvm = f;
                        }
                    }
                    if (fcvm != null)
                    {
                        Controller.ModuleMolen.FasenModuleData.Remove(fcvm);
                    }

                    // Green times
                    foreach (var set in Controller.GroentijdenSets)
                    {
                        GroentijdModel mgm = null;
                        foreach (var mgvm in set.Groentijden)
                        {
                            if (mgvm.FaseCyclus == fcm.Naam)
                            {
                                mgm = mgvm;
                            }
                        }
                        if (mgm != null)
                        {
                            set.Groentijden.Remove(mgm);
                        }
                    }
                }
            }

            // Sorting
            Controller.OVData.OVIngreepSignaalGroepParameters.BubbleSort();
            foreach (var set in Controller.GroentijdenSets)
            {
                set.Groentijden.BubbleSort();
            }
            Controller.ModuleMolen.FasenModuleData.BubbleSort();

            // Messaging
            MessengerInstance.Send(new FasenChangedMessage(message.AddedFasen, message.RemovedFasen));
        }
예제 #4
0
 public OVIngreepSignaalGroepParametersViewModel(OVIngreepSignaalGroepParametersModel prms)
 {
     _Parameters = prms;
 }
 public OVIngreepSignaalGroepParametersChangedMessage(OVIngreepSignaalGroepParametersModel signaalgroepparameters)
 {
     SignaalGroepParameters = signaalgroepparameters;
 }