public async void LoadPrincipalPart()
        {
            PrincipalPart = await _repository.GetPrincipalPartAsync(PrincipalPartId);

            Suffixes = await _suffixRepository.GetSuffixsAsync();

            NonFiniteSuffixes = await _nonFiniteSuffixRepository.GetNonFiniteSuffixsAsync();

            Passives = await _passiveRepository.GetPassivesAsync();

            VerbalNounSuffixes = await _verbalNounSuffixRepository.GetVerbalNounSuffixsAsync();

            VerbalNounManager verbalNounManager = new VerbalNounManager(PrincipalPart, VerbalNounSuffixes);

            VerbalNouns = new ObservableCollection <VerbalNoun>();

            Gerund = verbalNounManager.CreateVerbalNoun(PrincipalPart.Conjugation, "Gerund");

            VerbalNouns.Add(Gerund);

            Supine = verbalNounManager.CreateVerbalNoun(PrincipalPart.Conjugation, "Supine");

            VerbalNouns.Add(Supine);

            FormManager formManager = new FormManager(PrincipalPart, NonFiniteSuffixes);

            Forms = new ObservableCollection <Form>();

            InfinitiveForm = new Form("Infinitive");

            InfinitiveForm.Indicative_Active = formManager.CreateNonFiniteForm(PrincipalPart.Conjugation, "Indicative", "Infinitive", false);

            InfinitiveForm.Indicative_Passive
                = formManager.CreateNonFiniteForm(PrincipalPart.Conjugation, "Indicative", "Infinitive", true, PrincipalPart.SpecialPassiveInfinitive);

            Forms.Add(InfinitiveForm);

            ParticipleForm = new Form("Participle");

            ParticipleForm.Indicative_Active = formManager.CreateNonFiniteForm(PrincipalPart.Conjugation, "Indicative", "Participle", false);

            ParticipleForm.Indicative_Passive = formManager.CreateNonFiniteForm(PrincipalPart.Conjugation, "Indicative", "Participle", true);

            Forms.Add(ParticipleForm);

            TenseManager tenseManager = new TenseManager(PrincipalPart, Suffixes, Passives);

            PresentTense = new Tense("Present");

            PresentTense.Indicative_Active = tenseManager.CreateInflection(PrincipalPart.Conjugation, "Indicative", "Present", false);

            PresentTense.Subjunctive_Active = tenseManager.CreateInflection(PrincipalPart.Conjugation, "Subjunctive", "Present", false);

            PresentTense.Indicative_Passive = tenseManager.CreateInflection(PrincipalPart.Conjugation, "Indicative", "Present", true);

            PresentTense.Subjunctive_Passive = tenseManager.CreateInflection(PrincipalPart.Conjugation, "Subjunctive", "Present", true);


            FutureTense = new Tense("Future");


            FutureTense.Indicative_Active = tenseManager.CreateInflection(PrincipalPart.Conjugation, "Indicative", "Future", false);


            FutureTense.Indicative_Passive = tenseManager.CreateInflection(PrincipalPart.Conjugation, "Indicative", "Future", true);


            ImperfectTense = new Tense("Imperfect");

            ImperfectTense.Indicative_Active = tenseManager.CreateInflection(PrincipalPart.Conjugation, "Indicative", "Imperfect", false);


            ImperfectTense.Subjunctive_Active = tenseManager.CreateInflection(PrincipalPart.Conjugation, "Subjunctive", "Imperfect", false);

            ImperfectTense.Indicative_Passive = tenseManager.CreateInflection(PrincipalPart.Conjugation, "Indicative", "Imperfect", true);

            ImperfectTense.Subjunctive_Passive = tenseManager.CreateInflection(PrincipalPart.Conjugation, "Subjunctive", "Imperfect", true);

            PerfectTense = new Tense("Perfect");
            PerfectTense.Indicative_Active  = tenseManager.CreateInflection(PrincipalPart.Conjugation, "Indicative", "Perfect", false);
            PerfectTense.Subjunctive_Active = tenseManager.CreateInflection(PrincipalPart.Conjugation, "Subjunctive", "Perfect", false);
            PerfectTense.Indicative_Passive = tenseManager.CreateInflection(PrincipalPart.Conjugation, "Indicative", "Perfect", true);

            PerfectTense.Subjunctive_Passive = tenseManager.CreateInflection(PrincipalPart.Conjugation, "Subjunctive", "Perfect", true);


            PluperfectTense = new Tense("Pluperfect");
            PluperfectTense.Indicative_Active   = tenseManager.CreateInflection(PrincipalPart.Conjugation, "Indicative", "Pluperfect", false);
            PluperfectTense.Indicative_Passive  = tenseManager.CreateInflection(PrincipalPart.Conjugation, "Indicative", "Pluperfect", true);
            PluperfectTense.Subjunctive_Active  = tenseManager.CreateInflection(PrincipalPart.Conjugation, "Subjunctive", "Pluperfect", false);
            PluperfectTense.Subjunctive_Passive = tenseManager.CreateInflection(PrincipalPart.Conjugation, "Subjunctive", "Pluperfect", true);

            FuturePerfectTense = new Tense("Future Perfect");
            FuturePerfectTense.Indicative_Active  = tenseManager.CreateInflection(PrincipalPart.Conjugation, "Indicative", "Future Perfect", false);
            FuturePerfectTense.Indicative_Passive = tenseManager.CreateInflection(PrincipalPart.Conjugation, "Indicative", "Future Perfect", true);

            PresentImperativeTense = new Tense("Present Imperative");
            PresentImperativeTense.Indicative_Active  = tenseManager.CreateInflection(PrincipalPart.Conjugation, "Indicative", "Present Imperative", false);
            PresentImperativeTense.Indicative_Passive = tenseManager.CreateInflection(PrincipalPart.Conjugation, "Indicative", "Present Imperative", true);

            FutureImperativeTense = new Tense("Future Imperative");
            FutureImperativeTense.Indicative_Active  = tenseManager.CreateInflection(PrincipalPart.Conjugation, "Indicative", "Future Imperative", false);
            FutureImperativeTense.Indicative_Passive = tenseManager.CreateInflection(PrincipalPart.Conjugation, "Indicative", "Future Imperative", true);


            Tenses = new ObservableCollection <Tense>();

            Tenses.Add(PresentTense);

            Tenses.Add(ImperfectTense);

            Tenses.Add(FutureTense);

            Tenses.Add(PerfectTense);

            Tenses.Add(PluperfectTense);

            Tenses.Add(FuturePerfectTense);

            Tenses.Add(PresentImperativeTense);

            Tenses.Add(FutureImperativeTense);
        }