Ejemplo n.º 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));
        }
Ejemplo n.º 2
0
        public ActionResult <TaskListReadDto> PostTaskList(TaskListCreateDto taskListCreateDto)
        {
            _logger.LogInformation("Mapeando a lista de tarefas a ser cadastrada para a model");
            TaskList taskList = _mapper.Map <TaskList>(taskListCreateDto);

            _logger.LogInformation("Cadastrando a lista de tarefas no banco de dados");
            _taskListsRepo.PostTaskList(taskList);
            _taskListsRepo.SaveChanges();

            if (taskListCreateDto.Tasks != null && taskListCreateDto.Tasks.Count > 0)
            {
                Tag     tag;
                TaskTag taskTag;

                for (int i = 0; i < taskListCreateDto.Tasks.Count; i++)
                {
                    if (taskListCreateDto.Tasks[i].Tags != null && taskListCreateDto.Tasks[i].Tags.Count > 0)
                    {
                        taskTag = new TaskTag()
                        {
                            TaskId = taskList.Tasks[i].Id
                        };

                        _logger.LogInformation("Cadastrando as tags da tarefa de Id: {id} no banco de dados", taskList.Tasks[i].Id);
                        foreach (TagCreateDto tagCreateDto in taskListCreateDto.Tasks[i].Tags)
                        {
                            tag = _mapper.Map <Tag>(tagCreateDto);
                            _tagsRepo.PostTag(tag);
                            _tagsRepo.SaveChanges();

                            taskTag.TagId = tag.Id;
                            _taskTagsRepo.PostTaskTag(taskTag);
                            _taskTagsRepo.SaveChanges();
                        }
                    }
                }
            }

            _logger.LogInformation("Montando objeto de retorno");
            TaskList        taskListCreated = _taskListsRepo.GetTaskListById(taskList.Id);
            TaskListReadDto taskListReadDto = _mapper.Map <TaskListReadDto>(taskListCreated);

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

                for (int i = 0; i < taskListCreated.Tasks.Count; i++)
                {
                    if (taskListCreated.Tasks[i].TaskTags != null && taskListCreated.Tasks[i].TaskTags.Count > 0)
                    {
                        tags = taskListCreated.Tasks[i].TaskTags.Select(tt => tt.Tag).ToList();
                        taskListReadDto.Tasks[i].Tags = _mapper.Map <List <TagReadDto> >(tags);
                    }
                }
            }

            return(CreatedAtAction("GetTaskListById", new { id = taskListReadDto.Id }, taskListReadDto));
        }