Beispiel #1
0
        public ControllerModel ImportController(ControllerModel c = null)
        {
            if (c != null)
            {
                throw new NullReferenceException("TabC importer: Controller parsed is not null, which it should be for importing into new.");
            }


            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.CheckFileExists = true;
            openFileDialog.Title           = "Selecteer tab.c file voor importeren";
            openFileDialog.Filter          = "Import files|*tab.c;*.ccol|Alle files|*.*";

            ControllerModel newc = new ControllerModel();

            if (openFileDialog.ShowDialog() == true)
            {
                try
                {
                    DefaultsProvider.Default.SetDefaultsOnModel(newc.Data);
                    newc.Data.GarantieOntruimingsTijden = false;

                    string[] lines = File.ReadAllLines(openFileDialog.FileName);
                    if (lines.Length <= 1)
                    {
                        throw new IndexOutOfRangeException("Het bestand heeft minder dan 2 regels.");
                    }

                    // Build a list of the Phases with conflicts from the tab.c file
                    TabCImportHelperOutcome NewData = TabCImportHelper.GetNewData(lines);
                    NewData.Fasen.BubbleSort();
                    foreach (FaseCyclusModel fcm in NewData.Fasen)
                    {
                        fcm.Type = Settings.Utilities.FaseCyclusUtilities.GetFaseTypeFromNaam(fcm.Naam);
                        DefaultsProvider.Default.SetDefaultsOnModel(fcm, fcm.Type.ToString());
                        newc.Fasen.Add(fcm);
                        var fcdm = new FaseCyclusModuleDataModel()
                        {
                            FaseCyclus = fcm.Naam
                        };
                        DefaultsProvider.Default.SetDefaultsOnModel(fcdm, fcm.Type.ToString());
                        newc.ModuleMolen.FasenModuleData.Add(fcdm);
                    }
                    NewData.Conflicten.BubbleSort();
                    foreach (ConflictModel cm in NewData.Conflicten)
                    {
                        newc.InterSignaalGroep.Conflicten.Add(cm);
                    }
                    return(newc);
                }
                catch (Exception e)
                {
                    System.Windows.MessageBox.Show("Fout bij uitlezen tab.c.:\n" + e.Message, "Fout bij importeren tab.c");
                    return(null);
                }
            }
            return(null);
        }
        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));
        }
Beispiel #3
0
 public FaseCyclusModuleDataViewModel(FaseCyclusModuleDataModel fasedata)
 {
     _ModuleFaseData = fasedata;
 }
Beispiel #4
0
        public ControllerModel ImportController(ControllerModel c = null)
        {
            if (c != null)
            {
                throw new NullReferenceException("TabC importer: Controller parsed is not null, which it should be for importing into new.");
            }

            OpenFileDialog openFileDialog = new OpenFileDialog
            {
                CheckFileExists = true,
                Title           = "Selecteer tab.c file voor importeren",
                Filter          = "Import files|*tab.c;*.ccol|Alle files|*.*"
            };

            ControllerModel newc = new ControllerModel();

            if (openFileDialog.ShowDialog() == true)
            {
                try
                {
                    DefaultsProvider.Default.SetDefaultsOnModel(newc.Data);
                    newc.Data.GarantieOntruimingsTijden = false;

                    string[] lines = File.ReadAllLines(openFileDialog.FileName);
                    if (lines.Length <= 1)
                    {
                        throw new IndexOutOfRangeException("Het bestand heeft minder dan 2 regels.");
                    }

                    // Build a list of the Phases with conflicts from the tab.c file
                    TabCImportHelperOutcome NewData = TabCImportHelper.GetNewData(lines, true);
                    if (NewData == null)
                    {
                        return(null);
                    }

                    NewData.Fasen.BubbleSort();
                    foreach (FaseCyclusModel fcm in NewData.Fasen)
                    {
                        newc.Fasen.Add(fcm);
                        var fcdm = new FaseCyclusModuleDataModel()
                        {
                            FaseCyclus = fcm.Naam
                        };
                        DefaultsProvider.Default.SetDefaultsOnModel(fcdm, fcm.Type.ToString());
                        newc.ModuleMolen.FasenModuleData.Add(fcdm);
                    }
                    NewData.Conflicten.BubbleSort();
                    foreach (ConflictModel cm in NewData.Conflicten)
                    {
                        newc.InterSignaalGroep.Conflicten.Add(cm);
                    }
                    newc.Data.Intergroen = newc.Data.Intergroen;
                    if (newc.Data.Intergroen)
                    {
                        newc.Data.CCOLVersie = Models.Enumerations.CCOLVersieEnum.CCOL95;
                    }
                    foreach (var gs in NewData.Gelijkstarten)
                    {
                        newc.InterSignaalGroep.Gelijkstarten.Add(gs);
                    }
                    foreach (var gs in NewData.Voorstarten)
                    {
                        newc.InterSignaalGroep.Voorstarten.Add(gs);
                    }
                    foreach (var gs in NewData.LateReleases)
                    {
                        newc.InterSignaalGroep.LateReleases.Add(gs);
                    }
                    if (!string.IsNullOrWhiteSpace(NewData.KruisingNaam))
                    {
                        newc.Data.Naam = NewData.KruisingNaam;
                    }
                    if (!string.IsNullOrWhiteSpace(NewData.KruisingStraat1))
                    {
                        newc.Data.Straat1 = NewData.KruisingStraat1;
                    }
                    if (!string.IsNullOrWhiteSpace(NewData.KruisingStraat2))
                    {
                        newc.Data.Straat2 = NewData.KruisingStraat2;
                    }
                    return(newc);
                }
                catch (Exception e)
                {
                    System.Windows.MessageBox.Show("Fout bij uitlezen tab.c.:\n" + e.Message, "Fout bij importeren tab.c");
                    return(null);
                }
            }
            return(null);
        }