Exemple #1
0
        public void InsertItemsFromTemplate(List <PeriodeModel> items)
        {
            if (_Controller == null)
            {
                return;
            }

            foreach (var per in items)
            {
                if (!(TLCGenIntegrityChecker.IsElementNaamUnique(_Controller, per.Naam, TLCGenObjectTypeEnum.Periode)))
                {
                    MessageBox.Show("Error bij toevoegen van periode met naam " + per.Naam + ".\nNaam van de periode is niet uniek in de regeling.", "Error bij toepassen template");
                    return;
                }
                if (_Controller.GroentijdenSets.All(x => x.Naam != per.GroentijdenSet))
                {
                    MessageBox.Show("Error bij toevoegen van periode verwijzend naar groentijdenset " + per.GroentijdenSet + ".\nDeze groentijdenset ontbreekt in de regeling.", "Error bij toepassen template");
                    return;
                }
            }
            foreach (var per in items)
            {
                Periodes.Add(new PeriodeViewModel(per));
            }
            Messenger.Default.Send(new PeriodenChangedMessage());
        }
 public bool IsElementIdentifierUnique(TLCGenObjectTypeEnum objectType, string identifier, bool vissim = false)
 {
     if (!vissim)
     {
         return(TLCGenIntegrityChecker.IsElementNaamUnique(Controller, identifier, objectType));
     }
     return(TLCGenIntegrityChecker.IsElementVissimNaamUnique(Controller, identifier));
 }
Exemple #3
0
 public int CompareTo(object obj)
 {
     if (!(obj is DetectorModel d2))
     {
         throw new InvalidCastException();
     }
     return(TLCGenIntegrityChecker.CompareDetectors(Naam, d2.Naam, null, null));
 }
Exemple #4
0
        public static ITLCGenModelManager CreateModelManager(ControllerModel m)
        {
            var modelManager = Substitute.For <ITLCGenModelManager>();

            modelManager.IsElementIdentifierUnique(TLCGenObjectTypeEnum.Fase, "")
            .ReturnsForAnyArgs(x => TLCGenIntegrityChecker.IsElementNaamUnique(m, (string)x[1], (TLCGenObjectTypeEnum)x[0]));
            return(modelManager);
        }
Exemple #5
0
 private void OnIsFasenConflictRequestReceived(IsFasenConflictingRequest request)
 {
     if (request.Handled == false)
     {
         request.Handled       = true;
         request.IsConflicting = TLCGenIntegrityChecker.IsFasenConflicting(_Controller, request.Define1, request.Define2);
     }
 }
        private void GenerateCodeCommand_Executed(object prm)
        {
            var prepreq = new Messaging.Requests.PrepareForGenerationRequest(_Plugin.Controller);

            GalaSoft.MvvmLight.Messaging.Messenger.Default.Send(prepreq);
            string s = TLCGenIntegrityChecker.IsControllerDataOK(_Plugin.Controller);

            if (s == null)
            {
                _CodeGenerator.GenerateSourceFiles(_Plugin.Controller, Path.GetDirectoryName(_Plugin.ControllerFileName));
                Messenger.Default.Send(new ControllerCodeGeneratedMessage());
            }
            else
            {
                MessageBox.Show(s, "Fout in conflictmatrix");
            }
        }
        private void GenerateCodeCommand_Executed()
        {
            var prepreq = new Messaging.Requests.PrepareForGenerationRequest();

            Messenger.Default.Send(prepreq);
            var s = TLCGenIntegrityChecker.IsControllerDataOK(_plugin.Controller);

            if (s == null)
            {
                _codeGenerator.GenerateSourceFiles(_plugin.Controller, Path.GetDirectoryName(_plugin.ControllerFileName));
                Messenger.Default.Send(new ControllerCodeGeneratedMessage());
            }
            else
            {
                MessageBox.Show(s, "Fout in controller");
            }
        }
Exemple #8
0
        private void GenerateControllerCommand_Executed(object obj)
        {
            // Request to process all synchronisation data from matrix to model
            Messenger.Default.Send(new ProcessSynchronisationsRequest());

            string s = TLCGenIntegrityChecker.IsControllerDataOK(TLCGenControllerDataProvider.Default.Controller);

            if (s == null)
            {
                SelectedGenerator.Generator.GenerateController();
                MessengerInstance.Send(new ControllerCodeGeneratedMessage());
            }
            else
            {
                TLCGenDialogProvider.Default.ShowMessageBox(s + "\n\nKan regeling niet genereren.", "Error bij genereren: fout in regeling");
            }
        }
Exemple #9
0
        private void OnIsElementIdentifierUniqueRequestReceived(IsElementIdentifierUniqueRequest request)
        {
            if (request.Handled == false)
            {
                switch (request.Type)
                {
                case ElementIdentifierType.Naam:
                    request.IsUnique = TLCGenIntegrityChecker.IsElementNaamUnique(_Controller, request.Identifier);
                    request.Handled  = true;
                    break;

                case ElementIdentifierType.VissimNaam:
                    request.IsUnique = TLCGenIntegrityChecker.IsElementVissimNaamUnique(_Controller, request.Identifier);
                    request.Handled  = true;
                    break;
                }
            }
        }
Exemple #10
0
        private bool CheckCurrentItemNameUnique()
        {
            if (SelectedOptie == null)
            {
                return(true);
            }

            var oio = SelectedOptie as GebruikersOptieWithIOViewModel;
            var o   = SelectedOptie as GebruikersOptieViewModel;

            if (oio != null)
            {
                return(TLCGenIntegrityChecker.IsElementNaamUnique(_Controller, oio.Naam));
            }
            else
            {
                return(TLCGenIntegrityChecker.IsElementNaamUnique(_Controller, o.Naam));
            }
        }
Exemple #11
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));
            }
        }
Exemple #12
0
        private void ImportControllerCommand_Executed(object obj)
        {
            if (obj == null)
            {
                throw new NullReferenceException();
            }
            if (!(obj is ITLCGenImporter imp))
            {
                throw new InvalidCastException();
            }

            // Import into existing controller
            if (TLCGenControllerDataProvider.Default.CheckChanged())
            {
                return;
            }
            if (imp.ImportsIntoExisting)
            {
                // Request to process all synchronisation data from matrix to model
                Messenger.Default.Send(new ProcessSynchronisationsRequest());

                // Check data integrity
                var s1 = TLCGenIntegrityChecker.IsConflictMatrixOK(ControllerVM.Controller);
                if (s1 != null)
                {
                    TLCGenDialogProvider.Default.ShowMessageBox("Kan niet importeren:\n\n" + s1, "Error bij importeren: fout in regeling");
                    return;
                }
                // Import to clone of original (so we can discard if wrong)
                var c1 = DeepCloner.DeepClone(ControllerVM.Controller);
                var c2 = imp.ImportController(c1);

                // Do nothing if the importer returned nothing
                if (c2 == null)
                {
                    TLCGenDialogProvider.Default.ShowMessageBox("Importeren is afgebroken door de gebruiker", "Importeren afgebroken");
                    return;
                }

                // Check data integrity
                c2.Data.GarantieOntruimingsTijden = false;
                s1 = TLCGenIntegrityChecker.IsConflictMatrixOK(c2);
                if (s1 != null)
                {
                    TLCGenDialogProvider.Default.ShowMessageBox("Fout bij importeren:\n\n" + s1, "Error bij importeren: fout in data");
                    return;
                }
                if (c1.Data.GarantieOntruimingsTijden)
                {
                    TLCGenDialogProvider.Default.ShowMessageBox("De bestaande regeling had garantie ontruimingstijden.\nDeze zijn nu uitgeschakeld.", "Garantie ontruimingstijden uitrgeschakeld");
                }
                SetController(c2);
                ControllerVM.ReloadController();
                GuiActionsManager.SetStatusBarMessage(
                    DateTime.Now.ToLongTimeString() +
                    " - Data in regeling " + TLCGenControllerDataProvider.Default.Controller.Data.Naam + " geïmporteerd");
            }
            // Import as new controller
            else
            {
                var c1 = imp.ImportController();

                // Do nothing if the importer returned nothing
                if (c1 == null)
                {
                    return;
                }

                // Check data integrity
                var s1 = TLCGenIntegrityChecker.IsConflictMatrixOK(c1);
                if (s1 != null)
                {
                    TLCGenDialogProvider.Default.ShowMessageBox("Fout bij importeren:\n\n" + s1, "Error bij importeren: fout in data");
                    return;
                }
                TLCGenControllerDataProvider.Default.CloseController();
                DefaultsProvider.Default.SetDefaultsOnModel(c1.Data);
                DefaultsProvider.Default.SetDefaultsOnModel(c1.OVData);
                SetController(c1);
                ControllerVM.ReloadController();
                GuiActionsManager.SetStatusBarMessage(
                    DateTime.Now.ToLongTimeString() +
                    " - Regeling geïmporteerd");
            }
            Messenger.Default.Send(new UpdateTabsEnabledMessage());
            RaisePropertyChanged("HasController");
        }