Пример #1
0
        public void StartInitialization()
        {

            DataBase = App.MainDbContext;// ViewModelLocator.Instance.DataBase;

            InitializeSpeechParts();
            //InitializeFrequencyDictionary();
            //LearningWordStrategy_Initialization();
        }
 public ReferencesToWord_ViewModel_WPF(
     ILogger Logger_, 
     INavigationService NavigationService_,
     EFDbContext EFDbContext_,
     IDialogService DialogService_,
     ILocalization Tx_
     )
     : base(Logger_,NavigationService_,EFDbContext_,DialogService_,Tx_)
 {
 }
        public ReferencesToWord_ViewModel(
            ILogger Logger_, 
            INavigationService NavigationService_,
            EFDbContext EFDbContext_,
            IDialogService DialogService_,
            ILocalization Tx_
            )
        {
            if (!IsInDesignMode)
            {
                Logger = Logger_;
                NavigationService = NavigationService_;
                EFDbContext =EFDbContext_;
                DialogService = DialogService_;
                Tx = Tx_;

                CommandDispatcher = new MvxCommand<string>(CmdDispatcher);

                References = new ObservableCollection<ReferenceToWordOfDictionary>();
            }

            ClearButton = new ButtonModel();
                      

            if (IsInDesignMode)
            {
                Word = new WordOfDictionary { word_of_dictionary = "I'm" };

                LearningItem li1 = new LearningItem { Name = "Mazzy collection" };
                LearningItem li2 = new LearningItem { Name = "Futurama season 1" };

                Subtitles st1 = new Subtitles { Name = "English - Russian" };
                Subtitles st2 = new Subtitles { Name = "English - Ukraine" };

                References = new ObservableCollection<ReferenceToWordOfDictionary>()
                {
                    new ReferenceToWordOfDictionary {LearningItem = li1, Subtitles = st1,SubtitleItem =  new SubtitleItem { Text = "I'm Mazzy"},WordOfSubtitleItem = new WordOfSubtitleItem { word = "I'm"} },
                    new ReferenceToWordOfDictionary {LearningItem = li1, Subtitles = st1, SubtitleItem = new SubtitleItem { Text = "I am princess Sylvia" } ,WordOfSubtitleItem = new WordOfSubtitleItem { word = "I am"}},
                    new ReferenceToWordOfDictionary {LearningItem = li2, Subtitles = st2, SubtitleItem = new SubtitleItem { Text = "I'm Nibbler" } ,WordOfSubtitleItem = new WordOfSubtitleItem { word = "I'm"}}
                };

            }

        }
Пример #4
0
 public List<WordOfSubtitleItem> FindReferences(EFDbContext dbContext) =>
     dbContext.Query(new QueryBuilder<WordOfSubtitleItem>(dbContext) {Where = $"{nameof(WordOfSubtitleItem.word_of_dictionary_id)} = {id.Hex}"});
        EFDbConnect CreateDemoBase(string db_name)
        {
            string path = PathToDb(db_name);
            if (File.Exists(path))
            {
                File.Delete(path);
            }

            ILogger ILoggerMock = Mock.Of<ILogger>();
            ISQLitePlatform platf = new SQLitePlatformWin32();
            EFDbConnect EFDbConnect = new EFDbConnect(platf, path);

            EFDbContext ctx = new EFDbContext(EFDbConnect);

            LearningItem li1 = new LearningItem();
            li1.Name = "First";
            ctx.AddNewItemToDBContext(li1);
            LearningItem li2 = new LearningItem();
            li2.Name = "Second";
            ctx.AddNewItemToDBContext(li2);


            // Audio tracks
            AudioTrack at1 = new AudioTrack();
            li1.AudioTracks.Add(at1);

            AudioTrack at2 = new AudioTrack();
            li1.AudioTracks.Add(at2);

            AudioTrack at3 = new AudioTrack();
            li2.AudioTracks.Add(at3);

            // Frequency dictionary
            FrequencyDictionary fd1 = new FrequencyDictionary();
            FrequencyDictionary fd2 = new FrequencyDictionary();

            FrequencyDictionary.Item fdi1 = new FrequencyDictionary.Item();
            fd1.Items.Add(fdi1);
            FrequencyDictionary.Item fdi2 = new FrequencyDictionary.Item();
            fd1.Items.Add(fdi2);

            FrequencyDictionary.Item fdi3 = new FrequencyDictionary.Item();
            fd2.Items.Add(fdi3);
            FrequencyDictionary.Item fdi4 = new FrequencyDictionary.Item();
            fd2.Items.Add(fdi4);

            // Languages
            Language lang1 = new Language();
            lang1.FrequencyDictionary = fd1;

            Language lang2 = new Language();
            lang2.FrequencyDictionary = fd2;

            Subtitles sub1 = new Subtitles();
            li1.SubtitleCollection.Add(sub1);
            sub1.SecondaryLanguage = lang1;

            Subtitles sub2 = new Subtitles();
            li1.SubtitleCollection.Add(sub2);


            SubtitleItem si1 = new SubtitleItem();
            sub1.Items.Add(si1);
            SubtitleItem si2 = new SubtitleItem();
            sub1.Items.Add(si2);

            SubtitleItem si3 = new SubtitleItem();
            sub2.Items.Add(si3);
            SubtitleItem si4 = new SubtitleItem();
            sub2.Items.Add(si4);

            Subtitles sub3 = new Subtitles();
            li2.SubtitleCollection.Add(sub3);
            sub3.SecondaryLanguage = lang2;

            SubtitleItem si5 = new SubtitleItem();
            sub3.Items.Add(si5);


            WordOfSubtitleItem sw1 = new WordOfSubtitleItem();
            si1.WordsCollection.Add(sw1); 

            WordOfSubtitleItem sw2 = new WordOfSubtitleItem();
            si1.WordsCollection.Add(sw2); 

            WordOfSubtitleItem sw3 = new WordOfSubtitleItem();
            si5.WordsCollection.Add(sw3);



            // Dictionary
            Dictionary dic1 = new Dictionary();
            ctx.AddNewItemToDBContext(dic1);

            WordOfDictionary wd1 = new WordOfDictionary();
            dic1.Words.Add(wd1);

            TranslationOfWord tw1 = new TranslationOfWord();
            wd1.translations.Add(tw1);
            
            TranslationOfWord tw2 = new TranslationOfWord();
            wd1.translations.Add(tw2);

            WordOfDictionary wd2 = new WordOfDictionary();
            dic1.Words.Add(wd2);
            sw1.word_of_dictionary = wd1;
            sw2.word_of_dictionary = wd2;

            Dictionary dic2 = new Dictionary();
            ctx.AddNewItemToDBContext(dic2);
            WordOfDictionary wd3 = new WordOfDictionary();
            dic1.Words.Add(wd3);
            WordOfDictionary wd4 = new WordOfDictionary();
            dic1.Words.Add(wd4);
            sw3.word_of_dictionary = wd3;

            
            
            
            ctx.SaveChanges();

            return EFDbConnect;
        }
        public SubtitleEditor_ViewModel_WPF(
            IPlayer player_,
            IDialogService DialogService_,
            INavigationService NavigationService_,
            ObservableCollection<Language> languages_,
            ILogger logger,
            EFDbContext efDbcontext
            )
        {
            if (!IsInDesignModeNet())
            {
                Player = player_;
                DialogService = DialogService_;
                NavigationService = NavigationService_;
                Languages = languages_;
                Logger = logger;
                EFDbContext = efDbcontext;

                SubGrid_PhrasesForDictionary_ContextMenu_AddTranslating_Command = new MvxCommand<WordOfSubtitleItem>(x=> SubGrid_PhrasesForDictionary_Cmd(x, "AddTranslating"));
                SubGrid_PhrasesForDictionary_ContextMenu_MarkTranslation_Command = new MvxCommand<WordOfSubtitleItem>(x=> SubGrid_PhrasesForDictionary_Cmd(x, "MarkTranslation"));
                SubGrid_PhrasesForDictionary_ContextMenu_EditWord_Command  = new MvxCommand<WordOfSubtitleItem>(x=> SubGrid_PhrasesForDictionary_Cmd(x,"EditWord"));
                SubGrid_PhrasesForDictionary_ContextMenu_EditTranslation_Command = new MvxCommand<WordOfSubtitleItem>(x=> SubGrid_PhrasesForDictionary_Cmd(x,"EditTranslation"));
                SubGrid_PhrasesForDictionary_ContextMenu_DeleteWord_Command = new MvxCommand<WordOfSubtitleItem>(x=> SubGrid_PhrasesForDictionary_Cmd(x,"DeleteWord"));
                SubGrid_PhrasesForDictionary_ContextMenu_AddToWordRulesList_Command = new MvxCommand<WordOfSubtitleItem>(x=> SubGrid_PhrasesForDictionary_Cmd(x,"AddToWordRulesList"));

                Dictionary_DataGrid_ContextMenu_Open_Command = new MvxCommand<WordOfDictionary>(x=>Dictionary_DataGrid_ContextMenu_Dispatcher(x,"OpenItem"));
                Dictionary_DataGrid_ContextMenu_Delete_Command = new MvxCommand<WordOfDictionary>(x=>Dictionary_DataGrid_ContextMenu_Dispatcher(x,"DeleteItem"));
                Dictionary_DataGrid_ContextMenu_Ref_Command = new MvxCommand<WordOfDictionary>(x=>Dictionary_DataGrid_ContextMenu_Dispatcher(x,"RefItem"));

                GridPlay_Command = new MvxCommand<SubtitleItem>((x)=>Grid_CommandDispatcher(x,"Play"));
                GridTimeStartTuningRight_Command = new MvxCommand<SubtitleItem>((x) => Grid_CommandDispatcher(x, "TimeStartTuningRight"));
                GridTimeStartTuningLeft_Command = new MvxCommand<SubtitleItem>((x) => Grid_CommandDispatcher(x, "TimeStartTuningLeft"));
                GridTimeEndTuningRight_Command = new MvxCommand<SubtitleItem>((x) => Grid_CommandDispatcher(x, "TimeEndTuningRight"));
                GridTimeEndTuningLeft_Command = new MvxCommand<SubtitleItem>((x) => Grid_CommandDispatcher(x, "TimeEndTuningLeft"));
                GridAddRow_Command = new MvxCommand<SubtitleItem>(x => Grid_CommandDispatcher(x, "AddRow"));

                GridDeleteRow_Command = new MvxCommand<SubtitleItem>(x => Grid_CommandDispatcher(x, "DeleteRow"));
                GridSplitRow_Command = new MvxCommand<SubtitleItem>(x => Grid_CommandDispatcher(x, "SplitRow"));
                GridExtractsWords_Command = new MvxCommand<SubtitleItem>(x => Grid_CommandDispatcher(x, "ExtractsWords"));
                GridTranslateWords_Command = new MvxCommand<SubtitleItem>(x => Grid_CommandDispatcher(x, "TranslateWords"));

                GridCommandDispatcher = new MvxCommand<string>(GirdCmdDispatcher);
                CommandDispatcher = new MvxCommand<string>(CmdDispatcher);

                Menu_Command = new MvxCommand<string>(MenuDispatcher);
            }

            PlayerVisibility = VisualState.Visible;

            if (IsInDesignModeNet())
            {
                PopulateDesignMode();
            }

            System.Windows.WeakEventManager wbm;

        }
Пример #7
0
 public void DeleteWord(WordOfDictionary wrd,EFDbContext context)
 {
     if (wrd.FindReferences(context).Count > 0) throw new Exception($"The word {wrd} has references from subtitles");
     Words.Remove(wrd);
 }