示例#1
0
        private void PlayEpisodeSlider_ManipulationStarted(object sender, ManipulationStartedRoutedEventArgs e)
        {
            Slider           slider  = (Slider)sender;
            EpisodeViewModel episode = (EpisodeViewModel)slider.DataContext;

            m_ViewModel.ExecuteManipulateSliderCommand(episode);
        }
示例#2
0
        private void PlayButton_Clicked(object sender, RoutedEventArgs e)
        {
            AppBarButton     playButton = (AppBarButton)sender;
            EpisodeViewModel episode    = (EpisodeViewModel)playButton.DataContext;

            episode.TogglePlayState();
        }
示例#3
0
 public PartialViewResult AddRating(string userId, int episodeId, int score)
 {
     Rating rating = new Rating() { UserId = userId, EpisodeId = episodeId, Score = score };
     Rating existingRating = context.Ratings.Where(r => r.EpisodeId == episodeId).Where(r => r.UserId == userId).FirstOrDefault();
     if (existingRating != null)
     {
         context.Ratings.Remove(existingRating);
     }
     context.Ratings.Add(rating);
     context.SaveChanges();
     var episode = context.episodes.Where(e => e.Id == episodeId).Include(e=>e.Show).FirstOrDefault();
     EpisodeViewModel episodeVM = new EpisodeViewModel();
     episodeVM.episode = context.episodes.Where(e => e.Id == episodeId).FirstOrDefault();
     episodeVM.comments = context.comments.Include("ApplicationUser").Where(c => c.EpisodeId == episodeId).OrderByDescending(f=>f.Id).ToList();
     episodeVM.currentUserRating = context.Ratings.Where(c => c.EpisodeId == episodeId).Where(c => c.UserId == userId).Select(c => c.Score).FirstOrDefault();
     int ratingSum = 0;
     List<Rating> ratings = context.Ratings.Where(r => r.EpisodeId == episodeId).ToList();
     if (ratings.Count > 0)
     {
         foreach (Rating epRating in ratings)
         {
             ratingSum += epRating.Score;
         }
         episodeVM.rating = ratingSum / ratings.Count;
     }
     return PartialView("_UserEpisodeRating",episodeVM);
 }
示例#4
0
        public ActionResult GetEpisodes(int id, string title)
        {
            if (!Settings.HasSettings)
            {
                ViewBag.Error = Resources.Resources.Settings_Missing_Sonarr;
                return(PartialView("DashletError"));
            }

            var formattedUri = UrlHelper.ReturnUri(Settings.IpAddress, Settings.Port).ToString();

            var episodes  = ApiService.GetSonarrEpisodes(formattedUri, Settings.ApiKey, id);
            var viewModel = new SonarrEpisodeViewModel {
                EpisodeViewModels = new Dictionary <int, List <EpisodeViewModel> >(), SeasonTitle = title
            };

            foreach (var e in episodes)
            {
                var episodeViewModel = new EpisodeViewModel();

                if (!viewModel.EpisodeViewModels.ContainsKey(e.seasonNumber))
                {
                    viewModel.EpisodeViewModels.Add(e.seasonNumber, new List <EpisodeViewModel>());
                }
                var mappedResult = (EpisodeViewModel)episodeViewModel.InjectFrom(new SonarrEpisodeMapper(), e);
                viewModel.EpisodeViewModels[e.seasonNumber].Add(mappedResult);
            }

            return(PartialView("Episodes", viewModel));
        }
示例#5
0
        public EpisodesPage()
        {
            InitializeComponent();
            var episodeService = DependencyService.Get <IEpisodeService>();

            BindingContext = _viewModel = new EpisodeViewModel(episodeService);
        }
        private int GetPlayBackPosition()
        {
            int           result = 0;
            ShowViewModel show   = TwitApi.Instance.Shows.FirstOrDefault(s => s.Selected == true);

            if (show != null)
            {
                EpisodeViewModel episode = show.Episodes.FirstOrDefault(e => e.Selected == true);
                if (episode != null)
                {
                    // If we find a show and episode, get the playback position. If not it will just start from the beginning.
                    string saveKey      = show.Show.Id + "|" + episode.Episode.Id + "|PlayBackPosition";
                    var    sharedPref   = this.GetSharedPreferences(SAVE_FILE_NAME, FileCreationMode.Private);
                    int    defaultValue = result;

                    result = sharedPref.GetInt(saveKey, defaultValue);

                    if (result < 0)
                    {
                        result = 0;
                    }
                }
            }
            return(result);
        }
        public IActionResult Episode(int id)
        {
            AnimeEpisode episode = _animeRepository.GetEpisode(id);

            if (episode == null)
            {
                return(View("404Error"));
            }

            var orderedEpList = _animeRepository.GetAnimeEpisodes(episode.AnimeId).OrderBy(s => s.EpisodeNo);
            var current       = orderedEpList.IndexOf(episode);
            var model         = new EpisodeViewModel()
            {
                AnimeName   = _animeRepository.GetAnime(episode.AnimeId).Title,
                Id          = episode.Id,
                AnimeId     = episode.AnimeId,
                EpNo        = episode.EpisodeNo,
                Title       = episode.Title,
                Links       = episode.Links,
                PrevEpisode = orderedEpList.ElementAtOrDefault(current - 1),
                NextEpisode = orderedEpList.ElementAtOrDefault(current + 1)
            };

            return(View(model));
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            RequestWindowFeature(WindowFeatures.NoTitle);
            SetContentView(Resource.Layout.VideoPlayBack);

            _show = TwitApi.Instance.Shows.FirstOrDefault(s => s.Selected == true);
            if (_show == null)
            {
                // return to MainActivity
            }

            _episode = _show.Episodes.FirstOrDefault(e => e.Selected == true);
            if (_episode == null)
            {
                // return to MainActivity
            }


            _videoPlayer     = FindViewById <AdvancedVideoView>(Resource.Id.videoViewer);
            _mediaController = new MediaController(this, true);

            _videoPlayer.SetMediaController(_mediaController);
            string mediaUrl = Intent.GetStringExtra("VideoUrl");

            _videoPlayer.SetVideoPath(mediaUrl);

            // Create your application here
        }
示例#9
0
        private void OnSkipNextClicked(object sender, RoutedEventArgs e)
        {
            AppBarButton     button  = (AppBarButton)sender;
            EpisodeViewModel episode = (EpisodeViewModel)button.DataContext;

            episode.SkipForward();
        }
示例#10
0
        private void Grid_RightTapped(object sender, RightTappedRoutedEventArgs e)
        {
            e.Handled = true;
            EpisodeViewModel selectedEpisode = (EpisodeViewModel)((Grid)sender).DataContext;
            Point            point           = e.GetPosition(this);

            m_ViewModel.ExecuteEpisodeRightClickedCommand(selectedEpisode, point);
        }
示例#11
0
        private void PlayEpisodeSlider_ManipulationCompleted(object sender, ManipulationCompletedRoutedEventArgs e)
        {
            Slider           slider      = (Slider)sender;
            EpisodeViewModel episode     = (EpisodeViewModel)slider.DataContext;
            long             sliderValue = (long)slider.Value;

            m_ViewModel.ExecuteReleaseSliderCommand(episode, sliderValue);
        }
示例#12
0
        private void PlayEpisodeSlider_PointerCaptureLost(object sender, PointerRoutedEventArgs e)
        {
            Slider           slider      = (Slider)sender;
            EpisodeViewModel episode     = (EpisodeViewModel)slider.DataContext;
            long             sliderValue = (long)slider.Value;

            m_ViewModel.ExecuteReleaseSliderCommand(episode, sliderValue);
        }
        public EpisodePage()
        {
            InitializeComponent();

            ViewModel = (EpisodeViewModel)DataContext;

            InitializeFrostedGlass(FrostedGlassPanel);
        }
示例#14
0
        public EpisodePage(Episode episode)
        {
            InitializeComponent();

            this.episode = episode;

            BindingContext = this.viewModel = new EpisodeViewModel(UserDialogs.Instance, episode);
        }
        public EpisodeController(ApplicationDbContext db)
        {
            _db = db;

            epVM = new EpisodeViewModel()
            {
                Diziler = _db.Diziler.ToList(), //Tüm db'deki dizileri Al
                Episode = new Models.Episode()
            };
        }
示例#16
0
        public IActionResult EditTitle(int episodeId, int seasonId, EpisodeViewModel model)
        {
            Episode episode = _database.Episodes.FirstOrDefault(a => a.Id == episodeId);

            episode.Title = model.Title;

            _database.SaveChanges();

            return(RedirectToAction("View", "Series", new { Id = seasonId }));
        }
 private static void PlayFromNetwork(EpisodeViewModel episode)
 {
     App.Player.Source = new Uri(episode.Episode.WebPath);
     App.Position      = App.Playlist.IndexOf(episode);
     App.Player.Play();
     App.UpdateSystemControls(episode.Episode);
     _viewModel.NowPlaying.Episode = episode;
     _viewModel.NowPlaying.Episode.PlayCommand.Symbol = Symbol.Pause;
     _viewModel.NowPlaying.Episode.PlayCommand.Label  = "Pause";
 }
 public EpisodeViewModelTests()
 {
     _metadataService = Substitute.For<IEpisodeMetadataService>();
     _tvShowMetadata = Substitute.For<ITvShowViewModel>();
     ITvShowViewModelFactory viewModelFactory = Substitute.For<ITvShowViewModelFactory>();
     _busyProvider = _busyProvider = Substitute.For<IBusyProvider>();
     var keyDataStore = Substitute.For<IKeyDataStore>();
     _path = @"C:\Folder\TV Shows\Game of Thrones\Season 2\3x09.mkv";
     _viewModel = new EpisodeViewModel(viewModelFactory, _metadataService, _tvShowMetadata, null, _busyProvider, null, keyDataStore, _path);
 }
示例#19
0
 public ActionResult DeletePost(int id)
 {
     var comment = context.comments.FirstOrDefault(c => c.Id == id);
     context.comments.Remove(comment);
     context.SaveChanges();
     EpisodeViewModel episodeVM = new EpisodeViewModel();
     episodeVM.episode = context.episodes.Where(e => e.Id == comment.EpisodeId).FirstOrDefault();
     episodeVM.comments = context.comments.Include("ApplicationUser").Where(c => c.EpisodeId == comment.EpisodeId).OrderByDescending(f => f.Id).ToList();
     return PartialView("_Comments", episodeVM);
 }
示例#20
0
 public PartialViewResult AddComment(string userId, int episodeId, string CommentString)
 {
     Comment comment = new Comment() { Message = CommentString, UserId = userId, EpisodeId = episodeId };
     context.comments.Add(comment);
     context.SaveChanges();
     EpisodeViewModel episodeVM = new EpisodeViewModel();
     episodeVM.episode = context.episodes.Where(e => e.Id == episodeId).FirstOrDefault();
     episodeVM.comments = context.comments.Include("ApplicationUser").Where(c => c.EpisodeId == episodeId).OrderByDescending(f=>f.Id).ToList();
     return PartialView("_Comments", episodeVM);
 }
        public ViewResult Episode(int serieid, int episodeId)
        {
            var vm = new EpisodeViewModel()
            {
                Episodes = episodeLogic.GetEpisodeBySerieId(serieid),
            };


            return(View(vm));
        }
        public void Update(EpisodeViewModel ep)
        {
            Episode p = new Episode();

            p.Id     = ep.Id;
            p.Number = ep.Number;
            p.Src    = ep.Src;
            p.STT    = ep.STT;
            _context.Episodes.Update(p);
            _context.SaveChanges();
        }
示例#23
0
    private void RemoveCommandExecute(EpisodeViewModel episode)
    {
        var episodeToRemove = Episodes.Where(ep => ep.Episode.Id == episode.Episode.Id).FirstOrDefault();

        if (episodeToRemove != null)
        {
            listenLaterService.Remove(episode.Episode);
            Episodes.Remove(episodeToRemove);
        }
        OnPropertyChanged(nameof(HasData));
        OnPropertyChanged(nameof(HasNoData));
    }
        public int Add(EpisodeViewModel ep)
        {
            var p = new Episode();

            p.AnimeId = ep.AnimeId;
            p.Number  = ep.Number;
            p.Src     = ep.Src;
            p.STT     = ep.STT;
            var a = _context.Episodes.Add(p);

            _context.SaveChanges();
            return(a.Entity.Id);
        }
 public static void Play(this MediaElement element, EpisodeViewModel episode)
 {
     if (App.Playlist == null)
     {
         App.Playlist = new[] { episode }
     }
     ;
     if (!App.Playlist.Contains(episode))
     {
         App.Playlist.Add(episode);
     }
     Play(episode);
 }
示例#26
0
    internal async Task InitializeAsync()
    {
        var episodes = listenLaterService.GetEpisodes();

        Episodes.Clear();
        foreach (var episode in episodes)
        {
            var episodeVM = new EpisodeViewModel(episode.Item1, episode.Item2, listenLaterService, playerService);
            await episodeVM.InitializeAsync();

            Episodes.Add(episodeVM);
        }
        OnPropertyChanged(nameof(HasData));
        OnPropertyChanged(nameof(HasNoData));
    }
        public EpisodeViewModel GetById(int id)
        {
            var ep = _context.Episodes.Find(id);

            if (ep == null)
            {
                throw new Exception("Episode isn't in data.");
            }
            EpisodeViewModel vm = new EpisodeViewModel();

            vm.Id      = ep.Id;
            vm.AnimeId = ep.AnimeId;
            vm.Number  = ep.Number;
            vm.Src     = ep.Src;
            vm.STT     = ep.STT;
            return(vm);
        }
示例#28
0
        public IActionResult ViewEpisode(int idSerie, int saison, int episode)
        {
            ViewBag.NbreVisitUnique = GetVisitIP();
            ViewBag.NbrePagesVues   = GetPageVues();
            UserConnect(ViewBag);
            ConsentCookie(ViewBag);

            Saison season = new Saison();

            season = season.getSeasonById(idSerie, saison);

            EpisodeViewModel model = new EpisodeViewModel {
                Saison = season, EpisodeNumber = episode
            };

            return(View("ViewEpisode", model));
        }
示例#29
0
        public void SonarrEpisodeMapper(int id, int seriesId, int epiNum, string airDate, string airDateUtc, bool downloading,
                                        int episodeFileId, int episodenumber, bool hasfile, bool monitoredBool, string overView, int sceneEpiNumber,
                                        int sceneSeasonNum, int seasonNum, string titleString, int tvdbId)
        {
            var source = new SonarrEpisode
            {
                id       = id,
                seriesId = seriesId,
                absoluteEpisodeNumber = epiNum,
                airDate            = airDate,
                airDateUtc         = airDateUtc,
                downloading        = downloading,
                episodeFileId      = episodeFileId,
                episodeNumber      = episodenumber,
                hasFile            = hasfile,
                monitored          = monitoredBool,
                overview           = overView,
                sceneEpisodeNumber = sceneEpiNumber,
                sceneSeasonNumber  = sceneSeasonNum,
                seasonNumber       = seasonNum,
                title         = titleString,
                tvDbEpisodeId = tvdbId
            };

            var target = new EpisodeViewModel();

            target.InjectFrom(new SonarrEpisodeMapper(), source);

            Assert.That(target.ID, Is.EqualTo(id));
            Assert.That(target.SeriesId, Is.EqualTo(seriesId));
            Assert.That(target.AbsoluteEpisodeNumber, Is.EqualTo(epiNum));
            Assert.That(target.AirDate, Is.EqualTo(new DateTime(2009, 09, 17)));
            Assert.That(target.AirDateUtc, Is.EqualTo(new DateTime(2009, 09, 18, 03, 00, 00)));
            Assert.That(target.Downloading, Is.EqualTo(downloading));
            Assert.That(target.EpisodeFileId, Is.EqualTo(episodeFileId));
            Assert.That(target.EpisodeNumber, Is.EqualTo(episodenumber));
            Assert.That(target.HasFile, Is.EqualTo(hasfile));
            Assert.That(target.Monitored, Is.EqualTo(monitoredBool));
            Assert.That(target.Overview, Is.EqualTo(overView));
            Assert.That(target.SceneEpisodeNumber, Is.EqualTo(sceneEpiNumber));
            Assert.That(target.SceneSeasonNumber, Is.EqualTo(sceneSeasonNum));
            Assert.That(target.SeasonNumber, Is.EqualTo(seasonNum));
            Assert.That(target.Title, Is.EqualTo(titleString));
            Assert.That(target.TvDbEpisodeId, Is.EqualTo(tvdbId));
        }
示例#30
0
        public async Task <IActionResult> PostEpisode([FromBody] EpisodeViewModel episode)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            if (episode.SeasonId == default)
            {
                return(BadRequest("A season ID must be provided"));
            }
            var entity = _mapper.Map <EpisodeViewModel, Episode>(episode);
            await _episodeRepository.PostEpisode(entity);

            await _episodeRepository.SaveChanges();

            _mapper.Map(entity, episode);
            return(Created("", episode));
        }
示例#31
0
        public async Task <ActionResult> GetAddEpisodePartial(int animeId)
        {
            var anime = await Context.Anime.Include(x => x.Episodes).FirstOrDefaultAsync(x => x.Id == animeId);

            if (anime == null)
            {
                return(NotFound("Anime-ul nu exista."));
            }

            var model = new EpisodeViewModel()
            {
                AnimeTitle = anime.Title,
                AnimeId    = anime.Id,
                Order      = anime.Episodes.Count + 1,
            };

            return(PartialView("Partials/_AddEpisodePartial", model));
        }