Ejemplo n.º 1
0
        /// <summary>
        /// Добавить новый эпизод
        /// </summary>
        public void AddEpisode()
        {
            if (CanAddEpisode is false)
            {
                return;
            }
            using (var ctx = new CVDbContext(AppDataPath))
            {
                var cartoon = ctx.Cartoons
                              .Include(c => c.CartoonVoiceOvers)
                              .First(c => c.CartoonId == GlobalIdList.CartoonId);

                if (cartoon.CartoonVoiceOvers.Count == 0)
                {
                    WinMan.ShowDialog(new DialogViewModel(
                                          "У выбранного мультсериала отсутствуют озвучки, добавьте одну или более для создания нового эпизода",
                                          DialogType.INFO));
                    return;
                }

                // загрузка первой озвучки выбранного м/с
                CartoonVoiceOver voiceOver;

                if (DefaultVoiceOver == null)
                {
                    voiceOver = ctx.Cartoons
                                .Include(ce => ce.CartoonVoiceOvers)
                                .First(c => c.CartoonId == GlobalIdList.CartoonId).CartoonVoiceOvers.First();
                }
                else
                {
                    voiceOver = ctx.VoiceOvers
                                .First(vo => vo.CartoonVoiceOverId ==
                                       DefaultVoiceOver.CartoonVoiceOverId);
                }

                var episode = CreateNewEpisode(ctx, voiceOver);

                CreateNewEpisodeOption(ctx, episode, voiceOver);

                episode = ctx.CartoonEpisodes.ToList().Last();

                Episodes.Add(episode);
                NotifyOfPropertyChange(() => Episodes);
            }

            SelectedEpisode             = Episodes.LastOrDefault();
            EpisodeIndexes.CurrentIndex = Episodes.IndexOf(SelectedEpisode);
            EpisodeIndexes.EndIndex     = Episodes.IndexOf(SelectedEpisode);
            NotifyOfPropertyChange(() => CanEditNextEpisode);
            NotifyOfPropertyChange(() => CanEditPreviousEpisode);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Удалить выбранный эпизод
        /// </summary>
        public void RemoveEpisode()
        {
            if (CanRemoveEpisode is false)
            {
                return;
            }

            RemoveEpisodeFromDb();

            Episodes.Remove(SelectedEpisode);
            NotifyOfPropertyChange(() => Episodes);
            SelectedEpisode = Episodes.LastOrDefault();
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Добавить эпизоды
        /// </summary>
        public void AddEpisodes()
        {
            var number     = Episodes.Count;
            var lastNumber = Episodes.LastOrDefault()?.Number ?? 0;
            var episodes   = new List <Episode>();
            var name       = $"{TranslateFileName(ESVM.SelectedFilm.Name)}_S{CurrentSeason.Number}_E";

            for (var i = 0; i < AddingEpisodeValue; i++)
            {
                if (number > 0 && number != lastNumber)
                {
                    for (var j = 1; j <= lastNumber; j++)
                    {
                        if (Episodes.Any(e => e.Number == j) ||
                            episodes.Any(e => e.Number == j))
                        {
                            continue;
                        }
                        episodes.Add(new Episode
                        {
                            Name   = name + j,
                            Number = j,
                            Season = CurrentSeason,
                            Film   = ESVM.SelectedFilm
                        });
                        lastNumber++;
                        break;
                    }

                    continue;
                }

                episodes.Add(new Episode
                {
                    Name   = name + ++number,
                    Number = number,
                    Season = CurrentSeason,
                    Film   = ESVM.SelectedFilm,
                });
                lastNumber++;
            }

            InsertEntityListToDb(episodes);
            Episodes        = new BindableCollection <Episode>(CurrentSeason.Episodes);
            SelectedEpisode = Episodes.LastOrDefault();
        }