示例#1
0
        public ActionResult <TaskListReadDto> GetTaskListById(long id)
        {
            _logger.LogInformation("Consultando a lista de tarefas de Id: {id}", id);
            TaskList taskList = _taskListsRepo.GetTaskListById(id);

            if (taskList == null)
            {
                _logger.LogWarning("A lista de tarefas de Id: {id} não existe", id);
                return(NotFound());
            }

            _logger.LogInformation("Mapeando a lista de tarefas de Id: {id} para a classe de DTO", id);
            TaskListReadDto taskListReadDto = _mapper.Map <TaskListReadDto>(taskList);

            if (taskList.Tasks != null && taskList.Tasks.Count > 0)
            {
                List <Tag> tags;

                for (int i = 0; i < taskList.Tasks.Count; i++)
                {
                    if (taskList.Tasks[i].TaskTags != null && taskList.Tasks[i].TaskTags.Count > 0)
                    {
                        _logger.LogInformation("Mapeando as tags da tarefa de Id: {id} para a classe de DTO", taskList.Tasks[i].Id);
                        tags = taskList.Tasks[i].TaskTags.Select(tt => tt.Tag).ToList();
                        taskListReadDto.Tasks[i].Tags = _mapper.Map <List <TagReadDto> >(tags);
                    }
                }
            }

            return(Ok(taskListReadDto));
        }
        public ActionResult <IEnumerable <TaskReadDto> > GetTasks(long taskListId)
        {
            _logger.LogInformation("Consultando a lista de tarefas de Id: {id}", taskListId);
            TaskList taskList = _taskListsRepo.GetTaskListById(taskListId);

            if (taskList == null)
            {
                _logger.LogWarning("A lista de tarefas de Id: {id} não existe", taskListId);
                return(NotFound());
            }

            _logger.LogInformation("Consultando as tarefas cadastradas para a lista de Id: {id}", taskListId);
            IEnumerable <Models.Task> tasks = _tasksRepo.GetTasks(taskListId);

            List <Tag>         tags;
            TaskReadDto        taskDto;
            List <TaskReadDto> taskDtos = new List <TaskReadDto>();

            foreach (Models.Task task in tasks)
            {
                _logger.LogInformation("Realizando o mapeamento da tarefa de Id: {id} para a classe de DTO", task.Id);
                taskDto = _mapper.Map <TaskReadDto>(task);

                if (task.TaskTags != null && task.TaskTags.Count > 0)
                {
                    _logger.LogInformation("Realizando o mapeamento das tags da tarefa de Id: {id} para a classe de DTO", task.Id);
                    tags         = task.TaskTags.Select(tt => tt.Tag).ToList();
                    taskDto.Tags = _mapper.Map <List <TagReadDto> >(tags);
                }

                _logger.LogInformation("Adicionando a tarefa de Id: {id} na lista de tarefas", task.Id);
                taskDtos.Add(taskDto);
            }

            return(Ok(taskDtos));
        }