Exemple #1
0
        public async Task <EpisodeDTO> GetEpisodeByIdAsync(int id)
        {
            Episode episode = await _episodeRepository.FindAsync(id,
                                                                 x => x.CharactersInEpisode, x => x.CharactersInEpisode.Select(y => y.Character)
                                                                 );

            return(_mapper.Map <EpisodeDTO>(episode));
        }
        /// <summary>
        /// Returns the episode of the show that fits the season and episode number.
        /// A missing episode is returned upon no matches.
        /// </summary>
        public async Task <Episode> SearchAsync(Show show, int seasonNumber, int episodeNumber)
        {
            // Check DB.
            var result = await _episodeRepo.FindAsync(show.Id, seasonNumber, episodeNumber);

            result ??= episodeNumber > 48 ? await _episodeRepo.FindAsync(show.Id, episodeNumber) : null;

            if (result != null)
            {
                return(result);
            }

            // Check API.
            result = await SearchAPIAsync(show, seasonNumber, episodeNumber);

            return(result ?? new MissingEpisode(show.Id, seasonNumber, episodeNumber));
        }
Exemple #3
0
        public async Task <ActionResult <EpisodeDetailedDTO> > Get(int id)
        {
            var episode = await _repository.FindAsync(id);

            if (episode == null)
            {
                return(NotFound());
            }

            return(episode);
        }
        public async Task UpdateEpisodeAsync(IUpdateEpisodeModel updateModel)
        {
            if (updateModel == null)
            {
                throw new ArgumentNullException(nameof(updateModel));
            }

            await _updateEpisodeValidator.ValidateAndThrowAsync(updateModel);

            Episode episodeToUpdate = await _episodeRepository.FindAsync(updateModel.Id);

            episodeToUpdate.Name = updateModel.Name;
        }
Exemple #5
0
        public async Task DeleteAsync(int id)
        {
            Episode?episodeToDelete = await _episodeRepository.FindAsync(id);

            _episodeRepository.Delete(episodeToDelete);
        }