public void First_AllColumns() { dynamic films = new Films(ProviderName); var singleInstance = films.First(film_id: 43); Assert.AreEqual(43, singleInstance.film_id); }
/// <summary> /// Переустановить выбранный фильм /// </summary> /// <param name="film">Новое значение фильма</param> /// <param name="isTypeChanging">Изменился ли тип фильма</param> public void ResetSelectedFilm(Film film, bool isTypeChanging) { SelectedFilmType = isTypeChanging is true ? film.FilmType : SelectedFilmType; SelectedFilm = Films.First(f => f.Name == film.Name); }
/// <summary> /// Сбросить последнюю дату просмотра у эпизодов /// </summary> public void ResetLastDateViewed() { if (CanResetLastDateViewed is false) { NotifyOfPropertyChange(() => CanResetLastDateViewed); } DialogViewModel dvm; var filmName = SelectedGlobalResetFilm.Name; if (filmName == "всех") { dvm = new DialogViewModel($"Вы уверены что хотите сбросить даты последнего просмотра " + $"ВСЕХ эпизодов? Эта операция необратима.", DialogType.Question); } else { dvm = new DialogViewModel($"Вы уверены что хотите сбросить даты последнего просмотра " + $"всех эпизодов \"{filmName}\"? " + "Эта операция необратима.", DialogType.Question); } WinMan.ShowDialog(dvm); if (dvm.DialogResult == DialogResult.YesAction) { var resetEpisodes = new List <Episode>(); if (filmName == "всех") { Films.ToList().ForEach(s => resetEpisodes.AddRange(s.Episodes)); } else { resetEpisodes.AddRange(Films.First(f => f.Name == filmName).Episodes); } if (resetEpisodes.All(re => re.LastDateViewed == AppVal.ResetTime)) { WinMan.ShowDialog(new DialogViewModel("Дата уже сброшена.", DialogType.Info)); return; } foreach (var ep in resetEpisodes) { ep.LastDateViewed = AppVal.ResetTime; } UpdateDbCollection(objCollection: resetEpisodes); WinMan.ShowDialog(new DialogViewModel("Дата успешно сброшена.", DialogType.Info)); } NotifyOfPropertyChange(() => CanResetLastDateViewed); }
public async Task <bool> CheckSP() { return(await Task.Run(async() => { if (CanCheckSP is false) { return false; } var result = new List <string>(); var film = Films.First(f => f.Name == "Южный парк"); var seasons = await Task.Run(() => film.Seasons); result.Add($"Общая информация:\n{film.FilmType} {film.Name}\n" + $"Сезонов - {seasons.Count}, Эпизодов - {await Task.Run(() => film.Episodes.Count)}\n\n" + "\tИнформация по Сезонам и эпизодам:\n\n"); foreach (var season in seasons) { var episodes = await Task.Run(() => season.Episodes); result.Add($"\tСезон №{season.Number}, количество эпизодов - {episodes.Count}\n"); foreach (var episode in episodes) { var addressInfoList = await Task.Run(() => episode.AddressInfoList); result.Add( $"\t\tЭпизод №{episode.Number}, полный номер - {episode.FullNumber}, количество адресов - {addressInfoList.Count}\n"); foreach (var address in addressInfoList) { var jumpers = await Task.Run(() => address.Jumpers); result.Add($"\t\t\tНазвание адреса - {address.Name}, адрес - {address.Link}, " + $"озвучка - {address.VoiceOver}, длительность - {address.TotalDuration}, джамперов - {jumpers.Count}"); foreach (var jumper in jumpers) { result.Add( $"\t\t\t\tДжампер №{jumper.Number}, режим джампера - {jumper.JumperMode}, время начала - {jumper.StartTime}, " + $"время конца - {jumper.EndTime}, длительность - {jumper.Duration}"); } } result.Add("\n\n"); } } var logName = $"{DateTime.Today:d}_{DateTime.Now.Hour:00}.{DateTime.Now.Minute:00}.{DateTime.Now.Second:00}.txt"; var filePath = $"{AppPath}\\{DevelopmentDataFolderName}\\CheckSP-{logName}"; new FileStream(filePath, FileMode.Create).Dispose(); using (var sw = new StreamWriter(filePath)) { foreach (var str in result) { await sw.WriteLineAsync(str); } sw.Dispose(); } return true; })); }