예제 #1
0
파일: ReadTests.cs 프로젝트: uolton/Mighty
        public void First_AllColumns()
        {
            dynamic films          = new Films(ProviderName);
            var     singleInstance = films.First(film_id: 43);

            Assert.AreEqual(43, singleInstance.film_id);
        }
예제 #2
0
        /// <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);
        }
예제 #3
0
        /// <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);
        }
예제 #4
0
        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;
            }));
        }