Exemple #1
0
        public async Task <ActionResult <ActionResult <Character> > > AssignExistedEpisodeWithCharacter(int characterId, int episodeId)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var character = _characterRepository.GetCharacter(characterId);

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

            var episode = await _episodeRepository.GetEpisodeAsync(episodeId);

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

            if (await _characterRepository.HasEpisodeAssignedAsync(characterId, episodeId))
            {
                return(BadRequest("Episode already assigned to character"));
            }
            _episodeRepository.CreateEpisodeAndAssignCharacter(character, episode);
            await _episodeRepository.SaveChangesAsync();

            return(CreatedAtAction(
                       "GetCharacter",
                       new { characterId },
                       character));
        }
 public async Task AssignNewEpisodeToCharacter(Character character, Episode episode)
 {
     if (await _episodeRepository.EpisodeNameExistsAsync(episode.EpisodeName))
     {
         throw new InvalidOperationException($"{episode.EpisodeName} already exists");
     }
     _episodeRepository.CreateEpisodeAndAssignCharacter(character, episode);
     await _characterRepository.SaveChangesAsync();
 }