public AppSettingEdit_ViewModel_WPF(
            ILogger Logger_, 
            INavigationService NavigationService_, 
            IDialogService DialogService_,
            EFDbConnect EFDbConnect_)
        {

            if (!IsInDesignModeNet())
            {
                Logger = Logger_;
                NavigationService = NavigationService_;
                DialogService = DialogService_;
                EFDbConnect = EFDbConnect_;

                Languages = new ObservableCollection<Language>(EFDbConnect.Table<Language>().ToList()); 
                LearningWordStrategies = new ObservableCollection<LearningWordStrategy>(EFDbConnect.Table<LearningWordStrategy>().ToList());

                CommandDispatcher = new MvxCommand<string>(CmdDispatcher);
            }

            if (IsInDesignModeNet())
            {
                Languages = new ObservableCollection<Language>();
                Languages.Add(new Language() {Code="en",Name="English"});
                Languages.Add(new Language() {Code="ru",Name="Русский"});
                Languages.Add(new Language() {Code="ua",Name="Українська мова"});

                Languages[0].DictionariesCollection.Add(new Dictionary {Name="First dictionary" });
                Languages[0].DictionariesCollection.Add(new Dictionary {Name="Ordinary dict" });
                Languages[0].DictionariesCollection.Add(new Dictionary {Name="My dictionary" });

                CurrentLanguage = Languages[0];
            }

        }
 bool QuantityTest(EFDbConnect dbConnect)
 {
     Assert.IsTrue(dbConnect.Table<LearningItem>().Count() == 1);
     Assert.IsTrue(dbConnect.Table<Subtitles>().Count() == 2);
     Assert.IsTrue(dbConnect.Table<SubtitleItem>().Count() == 4);
     Assert.IsTrue(dbConnect.Table<WordOfSubtitleItem>().Count() == 2);
     Assert.IsTrue(dbConnect.Table<WordOfDictionary>().Count() == 2);
     Assert.IsTrue(dbConnect.Table<TranslationOfWord>().Count() == 2);
     Assert.IsTrue(dbConnect.Table<Dictionary>().Count() == 1);
     Assert.IsTrue(dbConnect.Table<AudioTrack>().Count() == 2);
     Assert.IsTrue(dbConnect.Table<FrequencyDictionary>().Count() == 1);
     Assert.IsTrue(dbConnect.Table<FrequencyDictionary.Item>().Count() == 2);
     return true;
 }
        public EditLearningItem_ViewModel_WPF(
            IDialogServiceExtended DialogService_, 
            IPlayer Player_,
            INavigationService NavigationService_,
            AppSetting AppSetting_,
            EFDbConnect EFDbConnect_)
        {
            
            if (!IsInDesignModeNet())
            {
                DialogService = DialogService_;
                Player = Player_;
                NavigationService = NavigationService_;
                AppSetting = AppSetting_;
                EFDbConnect = EFDbConnect_;

                Languages = new ObservableCollection<Language>(EFDbConnect.Table<Language>().ToList());

                // Commands
                CommandDispatcher = new MvxCommand<string>(CmdDispatcher);

            }

            PlayerVisibility = Visibility.Visible;
            DownloadVideoButton = new ButtonModel();

            if (IsInDesignModeNet())
            {
                LearningItem = new LearningItem();
                LearningItem.Name = "Mazzy in Gondoland";
                
                LearningItem.VideoFileName = "C:\\Users\\Public\\Videos\\Sample Videos\\Mazzy.mkv";

                LearningItem.SubtitleCollection = new SynchronizedObservableCollection<Subtitles>();

                LearningItem.SubtitleCollection.Add(new Subtitles           {
                    Name = "English-Russian"
                });

                LearningItem.SubtitleCollection.Add(new Subtitles
                {
                    Name = "English-Ukraine"
                });

                //CurrentSubtitles = LearningItem.SubtitleCollection[0];
                
            }

           
        }
        public void ExportTest()
        {
            EFDbConnect EFDbConnectDemoBase = CreateDemoBase("Save_test.db");

            ILogger ILoggerMock = Mock.Of<ILogger>();
            DiskOperation diskop = new DiskOperation(ILoggerMock,new SQLitePlatformWin32(),EFDbConnectDemoBase);
            string path = PathToDb("upload.db");
            diskop.ExportLearningItem(path, EFDbConnectDemoBase.Table<LearningItem>().Where(x=>x.Name == "First").First().id , true);

            EFDbConnect dbConnect = new EFDbConnect(new SQLitePlatformWin32(), path,false);

            Assert.IsTrue(dbConnect.Table<LearningItem>().Count() == 1);
            Assert.IsTrue(dbConnect.Table<Subtitles>().Count() == 2);
            Assert.IsTrue(dbConnect.Table<SubtitleItem>().Count() == 4);
            Assert.IsTrue(dbConnect.Table<SubtitleItem.Word>().Count() == 2);
            Assert.IsTrue(dbConnect.Table<WordOfDictionary>().Count() == 2);
            Assert.IsTrue(dbConnect.Table<TranslationOfWord>().Count() == 2);
            Assert.IsTrue(dbConnect.Table<Dictionary>().Count() == 1);
            Assert.IsTrue(dbConnect.Table<AudioTrack>().Count() == 2);
            Assert.IsTrue(dbConnect.Table<FrequencyDictionary>().Count() == 1);
            Assert.IsTrue(dbConnect.Table<FrequencyDictionary.Item>().Count() == 2);
            dbConnect.Close();

        }
        public Dictionary_ViewModel(
            ILogger Logger_, 
            INavigationService NavigationService_, 
            IDialogService DialogService_,
            IAudioAPI AudioAPI_,
            EFDbConnect EFDbConnect_)
        {
            if (!IsInDesignMode)
            {
                Logger = Logger_;
                NavigationService = NavigationService_;
                DialogService = DialogService_;
                EFDbConnect = EFDbConnect_;
                AudioAPI = AudioAPI_;

                Languages = new ObservableCollection<Language>(EFDbConnect.Table<Language>().ToList());

                SpeechItem_Command = new MvxCommand<WordOfDictionary>(SpeechItem_Cmd);
                CommandDispatcher = new MvxCommand<string>(CommandDispatcher_); 
            }

            ViewModeDataGrid = VisualState.Collapsed;
            ViewModeList = VisualState.Collapsed;
            currentMode = ViewModes.List;
            SpeechPartsCollection =  new ObservableCollection<SpeechParts>(Enumeration.GetAll<SpeechParts>());
            ViewModesCollection = new ObservableCollection<ViewModes>(Enumeration.GetAll<ViewModes>());

            if (IsInDesignMode)
            {
                currentMode = ViewModes.DataGrid;

                Dictionary = new Dictionary();

                Dictionary.Words.Add(new WordOfDictionary {
                    word_of_dictionary = "Hello",
                    translation_as_string = "Привет",
                    transcription = "hello",
                    RepetitionPersent = 25,
                    SpeechPart = SpeechParts.Noun
                });

                Dictionary.Words.Add(new WordOfDictionary {
                    word_of_dictionary ="day",
                    translation_as_string = "день",
                    transcription ="day",
                    RepetitionPersent = 80,
                    SpeechPart =  SpeechParts.Noun
                });

                Dictionary.Words.Add(new WordOfDictionary {
                    word_of_dictionary ="I am",
                    translation_as_string = "я являюсь ...",
                    transcription ="...",
                    Forms = "I'm",
                    RepetitionPersent = 80,
                    SpeechPart =  SpeechParts.Noun
                });

            }

        }