/// <summary> /// Изменить выбранный эпизод и все связанные данные /// </summary> /// <param name="value">Конечное значение эпизода</param> private void ChangeSelectedEpisode(CartoonEpisode value) { if (IsDesignTime) { _selectedEpisode = value; NotifyOfPropertyChange(() => SelectedEpisode); return; } if (_selectedEpisode == value) { return; } IdList.EpisodeId = value?.CartoonEpisodeId ?? 0; ChangeSelectedVoiceOver(null); if (value == null) { _selectedEpisode = null; EpisodeIndexes.CurrentIndex = -1; NotifyEpisodeData(); } else { EpisodeIndexes.CurrentIndex = Episodes.IndexOf(value); LoadData(); } }
/// <summary> /// Изменить выбранный эпизод и все связанные данные /// </summary> /// <param name="value">Конечное значение эпизода</param> private void ChangeSelectedEpisode(CartoonEpisode value) { if (IsDesignTime) { _selectedEpisode = value; NotifyOfPropertyChange(() => SelectedEpisode); return; } EpisodeIndexes.CurrentIndex = value == null ? -1 : Episodes.IndexOf(value); NotifyOfPropertyChange(() => CanSelectNextEpisode); NotifyOfPropertyChange(() => CanSelectPreviousEpisode); if (_selectedEpisode == value) { return; } IdList.EpisodeId = value?.CartoonEpisodeId ?? 0; SelectedEpisodeVoiceOver = null; if (value == null) { _selectedEpisode = null; NotifyEpisodeData(); } else { LoadData(); } }
/// <summary> /// Создание новой опции эпизода с джампером /// </summary> /// <param name="ctx">база данных</param> /// <param name="episode">созданный эпизод</param> /// <param name="voiceOver">активная озвучка</param> private void CreateNewEpisodeOption(CVDbContext ctx, CartoonEpisode episode, CartoonVoiceOver voiceOver) { // создание новой опции var episodeOption = new EpisodeOption { CartoonEpisodeId = episode.CartoonEpisodeId, CartoonVoiceOverId = voiceOver.CartoonVoiceOverId, Name = $"{voiceOver.Name}_Option" }; ctx.EpisodeOptions.Add(episodeOption); ctx.SaveChanges(); episodeOption = ctx.EpisodeOptions.ToList().Last(); // создание нового джампера var jumper = new Jumper { EpisodeOptionId = episodeOption.EpisodeOptionId, Number = 1 }; ctx.Jumpers.Add(jumper); ctx.SaveChanges(); episodeOption = ctx.EpisodeOptions.ToList().Last(); episodeOption.Duration = CalculatingDuration(episodeOption); ctx.SaveChanges(); }
/// <summary> /// Создание нового эпизода с активной озвучкой /// </summary> /// <param name="ctx">база данных</param> /// <param name="voiceOver">активная озвучка</param> private CartoonEpisode CreateNewEpisode(CVDbContext ctx, CartoonVoiceOver voiceOver) { var count = _episodes.Count + 1; // создание эпизода с активной озвучкой var episode = new CartoonEpisode { CartoonSeasonId = GlobalIdList.SeasonId, CartoonId = GlobalIdList.CartoonId, CartoonVoiceOver = voiceOver, Name = $"{count}-й эпизод", Description = $"{count}-й эпизод", Number = count }; ctx.CartoonEpisodes.Add(episode); ctx.SaveChanges(); // загрузка эпизода с ID episode = ctx.CartoonEpisodes.ToList().Last(); // добавление эпизода в список выбранных эпизодов озвучки voiceOver.CheckedEpisodes.Add(episode); episode.EpisodeVoiceOvers.Add(voiceOver); ctx.SaveChanges(); return(episode); }
private void PlayEpisode(CartoonEpisode episode) { var cartUrl = episode.Cartoon.CartoonUrls.First(cu => cu.Checked); var webSite = CvDbContext.CartoonWebSites .Include(cws => cws.ElementValues) .First(cws => cws.CartoonWebSiteId == cartUrl.CartoonWebSiteId); var urlString = $"{cartUrl.Url}{episode.FullNumber}/{episode.CartoonVoiceOver.UrlParameter}"; var elementValue = webSite.ElementValues.First(); CurrentOptionId = episode.EpisodeOptions .First(eo => eo.CartoonEpisodeId == episode.CartoonEpisodeId && eo.CartoonVoiceOverId == episode.CartoonVoiceOver.CartoonVoiceOverId).EpisodeOptionId; //Попытки перейти на указанный url при нестабильном интернет соединении for (var i = 0; i < 10; i++) { try { Helper.Browser.Navigate().GoToUrl(urlString); break; } catch { Helper.Browser.Navigate().Refresh(); } } var option = CvDbContext.EpisodeOptions .Include(eo => eo.Jumpers) .First(eo => eo.EpisodeOptionId == CurrentOptionId); CurrentDuration = option.Duration; option.LastDateViewed = DateTime.Now; CvDbContext.SaveChanges(); Jumpers = new List <Jumper>(option.Jumpers); CurrentJumper = Jumpers[jumperCount++]; WebElement = Helper.Browser.FindElement(By.CssSelector(elementValue.CssSelector)); StartVideoPlayer(); Helper.Timer.Restart(); LaunchMonitoring(); if (GeneralSettings.WatchingInRow) { GeneralSettings.LastWatchedEpisodeInRowFullNumber = episode.FullNumber; WriteClassInFile(GeneralSettings, SavedGeneralSettingsFileName, GeneralSettingsFileExtension, AppDataPath); } }