Beispiel #1
0
 public async Task <IEnumerable <Character> > GetAllCharacters()
 {
     try
     {
         return(await _CharacterRepository.GetAllCharacters());
     }
     catch (Exception ex)
     {
         File.WriteAllText("log.txt", ex.Message + " - " + ex.StackTrace);
         throw new Exception("Erro no banco de dados, contate o administrador");
     }
 }
        public async Task <EpisodeCharacters> GetEpisodeCharacters(int episodeId)
        {
            var episode = await _episodeRepository.GetEpisode(episodeId);

            if (episode == null)
            {
                throw new KeyNotFoundException($"The episode with ${episodeId} does not exists");
            }
            var episodeCharacters = _episodeRepository.GetEpisodesCharacters(episodeId).ToList();
            var characters        = _characterRepository.GetAllCharacters().Where(x => episodeCharacters.Select(a => a.CharacterId).Contains(x.Id));

            return(new EpisodeCharacters(episodeId, episode.Name, characters.Select(character => character.Name)));
        }
Beispiel #3
0
        public async Task <PageResponse <Character> > List(GetCharactersQuery query)
        {
            var characters = await _characterRepository.GetAllCharacters()
                             .Select(x => new CharacterDTO(x.Id, x.Name, x.Planet))
                             .PickPage(query);

            var episodes      = _episodesService.GetAllEpisodes().ToList();
            var charactersIds = characters.Results.Select(x => x.Id);

            var episodeCharactersTask = _episodesService.GetAllEpisodesCharacters(charactersIds);
            var friendsTasks          = Task.FromResult(_characterRepository.GetAllCharactersFriends(charactersIds)
                                                        .Select(x => new CharacterFriendDTO(x.Id, x.FriendId))
                                                        .ToList());

            await Task.WhenAll(episodeCharactersTask, friendsTasks);

            return(characters.ComposeCharacters(episodes, friendsTasks.Result, episodeCharactersTask.Result));
        }
Beispiel #4
0
        public async Task <IList <CharacterDTO> > GetAllCharacters()
        {
            var characters = await _repository.GetAllCharacters();

            var response = new List <CharacterDTO>();

            foreach (var character in characters)
            {
                response.Add(new CharacterDTO
                {
                    Id          = character.Id,
                    Name        = character.Name,
                    Description = character.Description,
                    Modified    = character.Modified,
                    ResourceURI = character.ResourceURI
                });
            }

            return(response);
        }
Beispiel #5
0
 // GET: Characters
 public IActionResult Index()
 {
     return(View(_repository.GetAllCharacters()));
 }