public async Task UserEpisodeView(string webtoonTitleNumber, string episodeNumber, string userId) { var episodeId = this.episodesService.GetEpisodeId(webtoonTitleNumber, episodeNumber); var userEpisodeView = this.episodesViewsRepository.All().FirstOrDefault(ev => ev.ApplicationUserId == userId & ev.EpisodeId == episodeId); if (userEpisodeView == null) { userEpisodeView = new EpisodeView { ApplicationUserId = userId, EpisodeId = episodeId, LastViewedOn = DateTime.UtcNow, ViewCount = 1, }; await this.episodesViewsRepository.AddAsync(userEpisodeView); } else { var dateTimeDiff = DateTime.UtcNow.Subtract(userEpisodeView.LastViewedOn); if (dateTimeDiff.TotalHours > 24) { userEpisodeView.ViewCount++; userEpisodeView.LastViewedOn = DateTime.UtcNow; } } await this.episodesViewsRepository.SaveChangesAsync(); }
public EpisodePresenter(SeriesRepository repository, EpisodeView view) { ContentView = view; ContentView.SetCommands( new RelayCommand(Previous, () => repository.CanChangeFlow), new RelayCommand(Next, () => repository.CanChangeFlow), new RelayCommand(Bookmark, () => false), new RelayCommand(Download, () => false)); Repository = repository; }