Example #1
0
        void AddNewFaseCommand_Executed(object prm)
        {
            FaseCyclusModel fcm      = new FaseCyclusModel();
            string          newname  = "01";
            int             inewname = 1;

            foreach (FaseCyclusViewModel fcvm in Fasen)
            {
                if (Regex.IsMatch(fcvm.Naam, @"[0-9]+"))
                {
                    Match  m    = Regex.Match(fcvm.Naam, @"[0-9]+");
                    string next = m.Value;
                    if (Int32.TryParse(next, out inewname))
                    {
                        inewname++;
                        newname = (inewname < 10 ? "0" : "") + inewname.ToString();
                        while (!Integrity.IntegrityChecker.IsElementNaamUnique(newname))
                        {
                            inewname++;
                            newname = (inewname < 10 ? "0" : "") + inewname.ToString();
                        }
                    }
                }
            }
            fcm.Naam   = newname;
            fcm.Define = SettingsProvider.Instance.GetFaseCyclusDefinePrefix() + newname;
            SettingsProvider.Instance.ApplyDefaultFaseCyclusSettings(fcm, fcm.Define);
            FaseCyclusViewModel fcvm1 = new FaseCyclusViewModel(fcm);

            Fasen.Add(fcvm1);
        }
Example #2
0
 private void OnNameChanged(NameChangedMessage message)
 {
     if (Fasen.Any(x => x.Naam == message.NewName))
     {
         BuildConflictMatrix();
     }
 }
Example #3
0
        void AddNewFaseCommand_Executed(object prm)
        {
            var fcm     = new FaseCyclusModel();
            var newname = "01";

            foreach (var fcvm in Fasen)
            {
                if (Regex.IsMatch(fcvm.Naam, @"[0-9]+"))
                {
                    var m    = Regex.Match(fcvm.Naam, @"[0-9]+");
                    var next = m.Value;
                    if (int.TryParse(next, out int inewname))
                    {
                        IsElementIdentifierUniqueRequest message;
                        do
                        {
                            inewname++;
                            newname = (inewname < 10 ? "0" : "") + inewname;
                            message = new IsElementIdentifierUniqueRequest(newname, ElementIdentifierType.Naam);
                            Messenger.Default.Send(message);
                        }while (!message.IsUnique);
                    }
                }
                break;
            }
            fcm.Naam = newname;
            fcm.Type = Settings.Utilities.FaseCyclusUtilities.GetFaseTypeFromNaam(fcm.Naam);
            DefaultsProvider.Default.SetDefaultsOnModel(fcm, fcm.Type.ToString());
            var fcvm1 = new FaseCyclusViewModel(fcm);

            Fasen.Add(fcvm1);
        }
Example #4
0
        public void UpdateAfterApplyTemplate(FaseCyclusModel item)
        {
            var fc = Fasen.First(x => x.FaseCyclus == item);

            fc.RaisePropertyChanged("");
            Messenger.Default.Send(new DetectorenChangedMessage(_Controller, null, null));
        }
Example #5
0
        void AddNewFaseCommand_Executed(object prm)
        {
            var fcm = new FaseCyclusModel();

            string newname;
            var    inext = 0;

            foreach (var fcvm in Fasen)
            {
                if (int.TryParse(fcvm.Naam, out int inewname))
                {
                    inext = inewname > inext ? inewname : inext;
                }
            }
            do
            {
                inext++;
                newname = (inext < 10 ? "0" : "") + inext;
            }while (!TLCGenModelManager.Default.IsElementIdentifierUnique(TLCGenObjectTypeEnum.Fase, newname));

            fcm.Naam = newname;
            fcm.Type = Settings.Utilities.FaseCyclusUtilities.GetFaseTypeFromNaam(fcm.Naam);
            DefaultsProvider.Default.SetDefaultsOnModel(fcm, fcm.Type.ToString());
            var fcvm1 = new FaseCyclusViewModel(fcm);

            Fasen.Add(fcvm1);
        }
        public FaseCyclusTemplateViewModel(TLCGenTemplateModel <FaseCyclusModel> template)
        {
            _Template = template;
            foreach (var fc in template.Items)
            {
                Fasen.Add(fc);
            }
            Fasen.CollectionChanged += Fasen_CollectionChanged;
            if (Fasen.Any())
            {
                SelectedFaseCyclus = Fasen.First();
            }

            FaseCyclusTypeOpties.Clear();
            var fdescs = Enum.GetValues(typeof(FaseTypeEnum));

            foreach (FaseTypeEnum d in fdescs)
            {
                FaseCyclusTypeOpties.Add(d.GetDescription());
            }

            DetectorTypeOpties.Clear();
            var descs = Enum.GetValues(typeof(DetectorTypeEnum));

            foreach (DetectorTypeEnum d in descs)
            {
                DetectorTypeOpties.Add(d.GetDescription());
            }
        }
        private void AddFaseCommand_Executed(object prm)
        {
            FaseCyclusModel fc = new FaseCyclusModel();

            fc.Naam = "fase" + (Fasen.Count + 1);
            Fasen.Add(fc);
        }
Example #8
0
        private void UpdateFasenEnDetectoren()
        {
            Fasen.Clear();
            foreach (FaseCyclusModel fcm in _Controller.Fasen)
            {
                var fc = new RoBuGroverTabFaseViewModel(fcm.Naam);
                Fasen.Add(fc);
            }
            SelectedConflictGroep = SelectedConflictGroep;

            _ControllerRGVFileDetectoren  = new Dictionary <string, string>();
            _ControllerRGVHiaatDetectoren = new Dictionary <string, string>();
            foreach (FaseCyclusModel fcm in _Controller.Fasen)
            {
                foreach (DetectorModel dm in fcm.Detectoren)
                {
                    if (dm.Type == Models.Enumerations.DetectorTypeEnum.Kop)
                    {
                        _ControllerRGVFileDetectoren.Add(dm.Naam, fcm.Naam);
                    }
                    if (dm.Type == Models.Enumerations.DetectorTypeEnum.Lang)
                    {
                        _ControllerRGVHiaatDetectoren.Add(dm.Naam, fcm.Naam);
                    }
                }
            }
        }
        private void OnFasenChanged(FasenChangedMessage message)
        {
            var sfc = SelectedFaseCyclus;

            Fasen.Clear();
            foreach (var fcm in _Controller.Fasen)
            {
                Fasen.Add(new FaseCyclusModuleViewModel(fcm, null));
            }
            if (sfc != null && Fasen.Count > 0)
            {
                foreach (var fc in Fasen)
                {
                    if (fc.Naam == sfc.Naam)
                    {
                        SelectedFaseCyclus = sfc;
                    }
                }
            }
            else if (Fasen.Count > 0)
            {
                SelectedFaseCyclus = Fasen[0];
            }
            Fasen.BubbleSort();
        }
Example #10
0
 public void AddFromTemplate(List <FaseCyclusModel> items)
 {
     try
     {
         foreach (FaseCyclusModel fcm in items)
         {
             if (Integrity.IntegrityChecker.IsElementDefineUnique(fcm.Define) &&
                 Integrity.IntegrityChecker.IsElementNaamUnique(fcm.Naam))
             {
                 bool IsOK = true;
                 foreach (DetectorModel dm in fcm.Detectoren)
                 {
                     if (!(Integrity.IntegrityChecker.IsElementDefineUnique(dm.Define) &&
                           Integrity.IntegrityChecker.IsElementNaamUnique(dm.Naam)))
                     {
                         IsOK = false;
                         break;
                     }
                 }
                 if (IsOK)
                 {
                     FaseCyclusViewModel fcvm = new FaseCyclusViewModel(fcm);
                     Fasen.Add(fcvm);
                 }
             }
         }
     }
     catch
     {
         throw new NotImplementedException();
     }
 }
 private void OnFasenChanged(FasenChangedMessage message)
 {
     Fasen.Clear();
     foreach (FaseCyclusModel fcm in message.Fasen)
     {
         Fasen.Add(new FaseCyclusModuleViewModel(fcm, null));
     }
 }
        public ModulesTabFasenLijstViewModel(ModulesTabViewModel modulestabvm)
        {
            foreach (FaseCyclusModel fcm in modulestabvm.Controller.Fasen)
            {
                Fasen.Add(new FaseCyclusModuleViewModel(fcm, null));
            }

            MessageManager.Instance.Subscribe(this, new Action <FasenChangedMessage>(OnFasenChanged));
        }
 /// <summary>
 /// Sorts property ObservableCollection<FaseCyclusViewModel> Fasen.
 /// For this to not disrupt the model data, we temporarily disconnect method Fasen_CollectionChanged
 /// from the CollectionChanged event.
 /// </summary>
 public void SortFasen()
 {
     if (!IsSortingFasen)
     {
         IsSortingFasen = true;
         Fasen.BubbleSort();
         FasenTabVM.SortMaxGroenSetsFasen();
         IsSortingFasen = false;
     }
 }
Example #14
0
        public FasenTabViewModel(ControllerModel controller) : base(controller)
        {
            _MaxGroentijdenLijstVM = new GroentijdenSetsLijstViewModel(_Controller);
            foreach (FaseCyclusModel fcm in _Controller.Fasen)
            {
                Fasen.Add(new FaseCyclusViewModel(fcm));
            }
            Fasen.CollectionChanged += Fasen_CollectionChanged;

            MessageManager.Instance.Subscribe(this, new Action <GroentijdenTypeChangedMessage>(OnGroentijdenTypeChanged));
        }
 public override void OnSelected()
 {
     Fasen.Clear();
     AlleDetectoren.Clear();
     foreach (FaseCyclusModel fcm in _Controller.Fasen)
     {
         Fasen.Add(fcm.Naam);
         foreach (DetectorModel dm in fcm.Detectoren)
         {
             AlleDetectoren.Add(dm.Naam);
         }
     }
 }
        /// <summary>
        /// Updates the phases collection: sorting, rebuilding conflict matrix, etc.
        /// Only does something if phases have changed or are not sorted.
        /// </summary>
        /// <returns>True if it took action, false if not.</returns>
        public bool DoUpdateFasen()
        {
            if (!Fasen.IsSorted() || HasChangedFasen)
            {
                // Sort, update
                SortFasen();
                HasChangedFasen = false;
                CoordinatiesTabVM.BuildConflictMatrix();
                CoordinatiesTabVM.MatrixChanged = false;

                return(true);
            }
            return(false);
        }
Example #17
0
        public override void OnSelected()
        {
            var sel = SelectedFaseCyclus;

            Fasen.Clear();
            foreach (FaseCyclusModel fcm in _Controller.Fasen)
            {
                var fcvm = new FaseCyclusViewModel(fcm);
                if (sel != null && fcvm.Naam == sel.Naam)
                {
                    SelectedFaseCyclus = fcvm;
                }
                Fasen.Add(fcvm);
            }
        }
Example #18
0
 public override bool OnDeselectedPreview()
 {
     if (!Fasen.IsSorted())
     {
         _IsSorting = true;
         Fasen.BubbleSort();
         _Controller.Fasen.Clear();
         foreach (var fcvm in Fasen)
         {
             _Controller.Fasen.Add(fcvm.FaseCyclus);
         }
         Messenger.Default.Send(new FasenSortedMessage(_Controller.Fasen));
         _IsSorting = false;
     }
     return(true);
 }
Example #19
0
 private void BuildFasenList()
 {
     Fasen.Clear();
     foreach (FaseCyclusModel m in _Controller.Fasen)
     {
         if (m.Naam != _HDIngreep.FaseCyclus &&
             m.HDIngreep &&
             !(_HDIngreep.MeerealiserendeFaseCycli.Where(x => x.FaseCyclus == m.Naam).Count() > 0))
         {
             Fasen.Add(m.Naam);
         }
     }
     if (Fasen.Count > 0)
     {
         SelectedFase = Fasen[0];
     }
 }
Example #20
0
        public void InsertItemsFromTemplate(List <FaseCyclusModel> items)
        {
            if (_Controller == null)
            {
                return;
            }

            foreach (var fc in items)
            {
                if (!(TLCGenIntegrityChecker.IsElementNaamUnique(_Controller, fc.Naam, TLCGenObjectTypeEnum.Fase) &&
                      (fc.Detectoren.Count == 0 || fc.Detectoren.All(x => TLCGenIntegrityChecker.IsElementNaamUnique(_Controller, x.Naam, TLCGenObjectTypeEnum.Detector) != false))))
                {
                    MessageBox.Show("Error bij toevoegen van fase met naam " + fc.Naam + ".\nFase en/of bijbehorende detectie is niet uniek in de regeling.", "Error bij toepassen template");
                    return;
                }
            }
            foreach (var fc in items)
            {
                Fasen.Add(new FaseCyclusViewModel(fc));
            }
        }
Example #21
0
        public override void OnSelected()
        {
            var temp = SelectedFaseCyclus;

            Fasen.Clear();
            SelectedFaseCyclus = null;
            foreach (var fcm in _Controller.Fasen)
            {
                var fcvm = new FaseCyclusViewModel(fcm);
                Fasen.Add(fcvm);
                if (temp == null || fcvm.Naam != temp.Naam)
                {
                    continue;
                }
                SelectedFaseCyclus = fcvm;
                temp = null;
            }
            if (SelectedFaseCyclus == null && Fasen.Count > 0)
            {
                SelectedFaseCyclus = Fasen[0];
            }
        }
Example #22
0
 void RemoveFaseCommand_Executed(object prm)
 {
     if (SelectedFaseCycli != null && SelectedFaseCycli.Count > 0)
     {
         // Create temporary List cause we cannot directly remove the selection,
         // as it will cause the selection to change while we loop it
         List <FaseCyclusViewModel> lfcvm = new List <FaseCyclusViewModel>();
         foreach (FaseCyclusViewModel fcvm in SelectedFaseCycli)
         {
             lfcvm.Add(fcvm);
         }
         foreach (FaseCyclusViewModel fcvm in lfcvm)
         {
             Fasen.Remove(fcvm);
         }
         SelectedFaseCycli = null;
     }
     else if (SelectedFaseCyclus != null)
     {
         Fasen.Remove(SelectedFaseCyclus);
         SelectedFaseCyclus = null;
     }
 }
Example #23
0
        void RemoveFaseCommand_Executed(object prm)
        {
            bool changed = false;
            List <FaseCyclusModel> remfcs = new List <FaseCyclusModel>();

            if (SelectedFaseCycli != null && SelectedFaseCycli.Count > 0)
            {
                changed = true;
                foreach (FaseCyclusViewModel fcvm in SelectedFaseCycli)
                {
                    TLCGenControllerModifier.Default.RemoveSignalGroupFromController(fcvm.Naam);
                    remfcs.Add(fcvm.FaseCyclus);
                }

                SelectedFaseCycli = null;
            }
            else if (SelectedFaseCyclus != null)
            {
                changed = true;
                remfcs.Add(SelectedFaseCyclus.FaseCyclus);
                TLCGenControllerModifier.Default.RemoveSignalGroupFromController(SelectedFaseCyclus.Naam);
                SelectedFaseCyclus = null;
            }

            if (changed)
            {
                Fasen.CollectionChanged -= Fasen_CollectionChanged;
                Fasen.Clear();
                foreach (var fc in _Controller.Fasen)
                {
                    Fasen.Add(new FaseCyclusViewModel(fc));
                }
                Fasen.CollectionChanged += Fasen_CollectionChanged;
                Messenger.Default.Send(new FasenChangedMessage(null, remfcs));
            }
        }
Example #24
0
 private void OnConflictsChanged(ConflictsChangedMessage message)
 {
     Fasen.Rebuild();
 }
 private void OnFasenSortedChanged(FasenSortedMessage obj)
 {
     Fasen.BubbleSort();
 }
Example #26
0
        private void CollectAllIO()
        {
            Fasen.Clear();
            Detectoren.Clear();
            OverigeUitgangen.Clear();
            OverigeIngangen.Clear();

            bool[] done = new bool[20];
            for (int d = 0; d < 20; ++d)
            {
                done[d] = false;
            }
            foreach (var per in _Controller.PeriodenData.Perioden)
            {
                switch (per.Type)
                {
                case PeriodeTypeEnum.Groentijden:
                case PeriodeTypeEnum.Overig:
                    per.BitmapDataRelevant = true;
                    per.BitmapNaam         = per.Naam;
                    break;

                default:
                    per.BitmapDataRelevant = false;
                    break;
                }
            }

            foreach (var i in GetAllIOElements(_Controller))
            {
                switch (i.IOType)
                {
                case BitmappedItemTypeEnum.Fase:
                    Fasen.Add(i);
                    break;

                case BitmappedItemTypeEnum.Detector:
                    Detectoren.Add(i);
                    break;

                case BitmappedItemTypeEnum.Uitgang:
                    OverigeUitgangen.Add(i);
                    break;

                case BitmappedItemTypeEnum.Ingang:
                    OverigeIngangen.Add(i);
                    break;
                }
            }

            // IO from plugins
            foreach (var v in TLCGenPluginManager.Default.ApplicationPlugins)
            {
                if ((v.Item1 & TLCGenPluginElems.IOElementProvider) == TLCGenPluginElems.IOElementProvider)
                {
                    var pl       = v.Item2 as ITLCGenElementProvider;
                    var initems  = pl.GetInputItems();
                    var outitems = pl.GetOutputItems();
                    foreach (var i in initems)
                    {
                        OverigeIngangen.Add(new BitmappedItemViewModel(i, i.Naam, BitmappedItemTypeEnum.Ingang));
                    }
                    foreach (var o in outitems)
                    {
                        OverigeUitgangen.Add(new BitmappedItemViewModel(o, o.Naam, BitmappedItemTypeEnum.Uitgang));
                    }
                }
            }
            foreach (var v in TLCGenPluginManager.Default.ApplicationParts)
            {
                if ((v.Item1 & TLCGenPluginElems.IOElementProvider) == TLCGenPluginElems.IOElementProvider)
                {
                    var pl       = v.Item2 as ITLCGenElementProvider;
                    var initems  = pl.GetInputItems();
                    var outitems = pl.GetOutputItems();
                    foreach (var i in initems)
                    {
                        OverigeIngangen.Add(new BitmappedItemViewModel(i, i.Naam, BitmappedItemTypeEnum.Ingang));
                    }
                    foreach (var o in outitems)
                    {
                        OverigeUitgangen.Add(new BitmappedItemViewModel(o, o.Naam, BitmappedItemTypeEnum.Uitgang));
                    }
                }
            }
        }
        public ControllerViewModel(MainWindowViewModel mainwindowvm, ControllerModel controller)
        {
            _MainWindowVM = mainwindowvm;
            _Controller   = controller;

            // Add data from the Model to the ViewModel structure
            foreach (FaseCyclusModel fcm in _Controller.Fasen)
            {
                FaseCyclusViewModel fcvm = new FaseCyclusViewModel(fcm);
                Fasen.Add(fcvm);
            }
            foreach (DetectorModel dm in _Controller.Detectoren)
            {
                DetectorViewModel dvm = new DetectorViewModel(dm);
                Detectoren.Add(dvm);
            }
            foreach (GroentijdenSetModel mgm in _Controller.GroentijdenSets)
            {
                GroentijdenSetViewModel mgvm = new GroentijdenSetViewModel(mgm);
                MaxGroentijdenSets.Add(mgvm);
            }

            MessageManager.Instance.Subscribe(this, new Action <ControllerDataChangedMessage>(OnControllerDataChanged));
            MessageManager.Instance.Subscribe(this, new Action <NameChangedMessage>(OnNameChanged));
            MessageManager.Instance.Subscribe(this, new Action <DefineChangedMessage>(OnDefineChanged));
            MessageManager.Instance.Subscribe(this, new Action <UpdateTabsEnabledMessage>(OnUpdateTabsEnabled));
            MessageManager.Instance.Subscribe(this, new Action <GetDetectorListReqeust <List <DetectorModel>, object> >(OnDetectorListRequested));

            // Connect CollectionChanged event handlers
            MaxGroentijdenSets.CollectionChanged += MaxGroentijdenSets_CollectionChanged;

            if (!_MainWindowVM.TabItems.Where(x => x.GetPluginName() == AlgemeenTabVM.DisplayName).Any())
            {
                TabItems.Add(AlgemeenTabVM as ITLCGenTabItem);
            }
            if (!_MainWindowVM.TabItems.Where(x => x.GetPluginName() == FasenTabVM.DisplayName).Any())
            {
                TabItems.Add(FasenTabVM as ITLCGenTabItem);
            }
            if (!_MainWindowVM.TabItems.Where(x => x.GetPluginName() == DetectorenTabVM.DisplayName).Any())
            {
                TabItems.Add(DetectorenTabVM as ITLCGenTabItem);
            }
            if (!_MainWindowVM.TabItems.Where(x => x.GetPluginName() == CoordinatiesTabVM.DisplayName).Any())
            {
                TabItems.Add(CoordinatiesTabVM as ITLCGenTabItem);
            }
            if (!_MainWindowVM.TabItems.Where(x => x.GetPluginName() == ModulesTabVM.DisplayName).Any())
            {
                TabItems.Add(ModulesTabVM as ITLCGenTabItem);
            }
            if (!_MainWindowVM.TabItems.Where(x => x.GetPluginName() == BitmapTabVM.DisplayName).Any())
            {
                TabItems.Add(BitmapTabVM as ITLCGenTabItem);
            }
            foreach (ITLCGenTabItem item in _MainWindowVM.TabItems)
            {
                if (!TabItems.Contains(item))
                {
                    TabItems.Add(item);
                }
            }

            SelectedTab      = AlgemeenTabVM as ITLCGenTabItem;
            SelectedTabIndex = 0;
        }
Example #28
0
        static void Main(string[] args)
        {
            //Declare "Fase" variable
            Fasen fase = Fasen.Onbekend;

            //Flowchart
            Console.WriteLine("Zet de computer aan. (Antwoord op volgende vragen met y of n)");
            Console.Write("Gaat de computer aan?   >>>");
            string input = Console.ReadLine();

            Console.Clear();

            if (input == "y")
            {
                Console.Write("Zijn er fout boodschappen?   >>>");
                input = Console.ReadLine();
                Console.Clear();

                if (input == "y")
                {
                    fase = Fasen.A;
                }
                else
                {
                    fase = Fasen.B;
                }
            }
            else
            {
                Console.Write("Gaat het power light aan?   >>>");
                input = Console.ReadLine();
                Console.Clear();

                if (input == "y")
                {
                    Console.WriteLine("Zet het computerscherm aan");
                }
                else
                {
                    Console.WriteLine("Controleer de voedingskabel");
                }

                Console.Write("Probleem opgelost?   >>>");
                input = Console.ReadLine();
                Console.Clear();

                if (input == "y")
                {
                    fase = Fasen.B;
                }
                else
                {
                    fase = Fasen.C;
                }
            }

            switch (fase)
            {
            case Fasen.A:
                //Fase A
                Console.Write("Geef de foutcode als geheel getal in (0-9)");
                int foutcode = int.Parse(Console.ReadLine());

                if (foutcode < 0 || foutcode > 10)
                {
                    Console.WriteLine("Los het dan zelf op he!");
                }
                else
                {
                    double x = Math.Round(Math.Cbrt(foutcode * 3), 1);
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine($"Gelieve je computer gedurende {x} minuten af te zetten");
                    Console.ResetColor();
                }
                break;

            case Fasen.B:
                //Fase B
                Random random     = new Random();
                int    percentage = random.Next(1, 101);

                Console.WriteLine("Mooi zo alles werkt!");

                if (percentage <= 25)
                {
                    Console.WriteLine("En u wint ook nog eens 1 jaar gratis IT support!");
                }
                break;

            case Fasen.C:
                //Fase C
                int processorCount = Environment.ProcessorCount;

                if (processorCount == 1)
                {
                    Console.ForegroundColor = ConsoleColor.White;
                    Console.BackgroundColor = ConsoleColor.Red;
                    Console.WriteLine("1 processor");
                }
                else
                {
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.BackgroundColor = ConsoleColor.Green;
                    Console.WriteLine($"{processorCount} processors");
                }
                Console.ResetColor();

                int reparatiePrijs = processorCount * 50;
                if (reparatiePrijs > 200)
                {
                    reparatiePrijs = 200;
                }
                Console.WriteLine($"{reparatiePrijs} euro");

                bool is64Bit = Environment.Is64BitOperatingSystem;
                if (is64Bit)
                {
                    Console.WriteLine("Hier een bon!");
                }
                break;

            default:
                Console.WriteLine("Er is een fout opgetreden, probeer opnieuw!");
                break;
            }
        }
Example #29
0
 private void OnFasenChanged(FasenChangedMessage message)
 {
     Fasen.Rebuild();
 }
 private void OnNameChanged(NameChangedMessage obj)
 {
     Fasen.BubbleSort();
 }