/// <summary>
        /// Op basis van de usercontrol worden bepaalde events van de usercontrol die doorgegeven, opgevuld met methodes. Dit is alleen als de
        /// parameter connected op waar staat.
        /// </summary>
        /// <param name="userControl">usercontrol die in de contentcontrol zal gezet worden</param>
        /// <param name="connected">Bepaalt of wat er met de events van de usercontrol zal gebeuren</param
        private void BasisContentControl(BaseUserControl userControl, Boolean connected = true)
        {
            if (connected && userControl != null)
            {
                BasisContentControl(userControl, false);
            }
            if (userControl != null)
            {
                switch (userControl.GetType().Name)
                {
                case "PortefeuillesWindowViewModel":
                    if (connected)
                    {
                        PortefeuillesWindowViewModel.AddEvent    += RefreshStatusBarProperties;
                        PortefeuillesWindowViewModel.UpdateEvent += HandleSelectedPortefeuilleUpdate;
                        PortefeuillesWindowViewModel.RemoveEvent += HandleSelectedPortefeuilleDeletion;
                        PortefeuillesWindowViewModel.SelectedPortefeuilleEvent += ModifyAandelenContentControl;
                        BasisContent = userControl;
                    }
                    else
                    {
                        PortefeuillesWindowViewModel.AddEvent    -= RefreshStatusBarProperties;
                        PortefeuillesWindowViewModel.UpdateEvent -= HandleSelectedPortefeuilleUpdate;
                        PortefeuillesWindowViewModel.RemoveEvent -= HandleSelectedPortefeuilleDeletion;
                        PortefeuillesWindowViewModel.SelectedPortefeuilleEvent -= ModifyAandelenContentControl;
                    }
                    break;

                case "InlogViewModel":
                    if (connected)
                    {
                        InlogViewModel.InlogEvent += InlogEvent;
                        BasisContent = userControl;
                        if (idGebruikteEigenaar != 0)
                        {
                            repo.AddLog(new Log(idGebruikteEigenaar, LogOrigin.User, $"Gebruiker {repo.GetEigenaar(idGebruikteEigenaar).Naam}" +
                                                $" heeft de verbinding los gemaakt."));
                        }
                        idGebruikteEigenaar = 0;
                        RapporteringContentControl(RapportLogsContent, false);
                        AandelenContent    = null;
                        RapportLogsContent = null;
                        RefreshStatusBarProperties();
                    }
                    else
                    {
                        InlogViewModel.InlogEvent -= InlogEvent;
                    }
                    break;

                default:
                    break;
                }
            }
        }
Beispiel #2
0
 /// <summary>
 /// viewmodel heeft de repo nodig om met de database te communiceren en de idGebruiker om te kunnen identificeren aan wie
 /// deze portefeuilles zijn. Maakt de verschillende commando's voor de crud operaties voor de portefeuilles.
 /// </summary>
 /// <param name="repo"></param>
 /// <param name="nieuweIDgebruiker"></param>
 public PortefeuillesWindowViewModel(AandelenRepo repo, int nieuweIDgebruiker)
 {
     this.repo        = repo;
     this.idGebruiker = nieuweIDgebruiker;
     //wordt gebruikt om de naam van de Gebruiker te hebben en deze hierna te tonen.
     NaamEigenaar = repo.GetEigenaar(nieuweIDgebruiker).Naam;
     //Stelt lijst van alle portefeuilles van de gebruiker
     PortefeuilleCollectie = repo.GetPortefeuilles(nieuweIDgebruiker);
     AddCmd    = new CmdHelper(AddPortefeuille, CanAddPortefeuille);
     RemoveCmd = new CmdHelper(RemovePortefeuille, CanDeletePortefeuille);
     UpdateCmd = new CmdHelper(UpdatePortefeuille, CanUpdatePortefeulle);
 }
        /// <summary>
        /// taken van de constructor:
        /// 1. Haalt de repo/context en gebruikers id binnen
        /// 2. Haalt de lijst op van alle logs van de user met de specifieke ID
        /// 3. Stelt de CollectionView gelijkt met de log lijst
        /// 4. Maakt de commando's om de loglijst te kunnen sorteren
        /// 5. Legt de enumeratie logsoorten in een array
        /// 6. Commando aanmaken om file aan te kunnen maken voor de logs
        /// </summary>
        /// <param name="ID">id gebruiker</param>
        /// <param name="repo">repo/context is de datasource</param>
        public LogViewModel(int ID, AandelenRepo repo)
        {
            Repo        = repo;
            IdGebruiker = ID;
            Titel       = $"Log boek van {repo.GetEigenaar(ID).Naam}";
            LogLijst    = repo.LogLijst(ID);
            LogView     = (CollectionView)CollectionViewSource.GetDefaultView(LogLijst.ToArray());

            BtnHighDate = new CmdHelper(SorteerHoogsteDatum, LogNietLeeg);
            BtnLowDate  = new CmdHelper(SorteerLaagsteDatum, LogNietLeeg);
            LogSoorten  = Enum.GetValues(typeof(LogOrigin)).Cast <LogOrigin>();

            CmdSaveFileMdHmtl = new CmdHelper(SaveMarkdownHtmlFiles, () => LogNietLeeg() && (SaveMd || SaveMd));
        }
 /// <summary>
 /// Herfrist het markdown rapport property van de eigenaar.
 /// </summary>
 private void RefreshPreviewMd()
 {
     MarkDownText = repo.GetEigenaar(idGebruiker).GetReturnMarkdownDescription(IncludeAandelen);
 }