Exemplo n.º 1
0
        public JsonResult Create([FromBody] CreateProjectCommand command, [FromServices] ProjectHandler handler, [FromServices] TimeHandler timeHandler)
        {
            //Verificar se passou algum comando
            if (command is null)
            {
                return new JsonResult(NotFound())
                       {
                           StatusCode = 404
                       }
            }
            ;

            try
            {
                //Executa o processor de criação de projeto
                var resultProject = (GenericCommandResult)handler.Handle(command);

                //Verificar se ocorreu com sucesso
                if (resultProject.Success)
                {
                    //Retorna um objeto do Tipo Projeto
                    var project = (Project)resultProject.Data;
                    //inicia a fase de colocar o usuario na tabela de tempo no projeto
                    foreach (var item in command.User_Id)
                    {
                        var user = _userRepository.GetById(item);
                        //criar o tempo do projeto por usuario
                        var resultTime = timeHandler.Handle(new CreateTimeCommand(project.Id, user.Id, null, null));
                    }
                    //Transformo o retorno para mostrar os dados de forma mais organizada
                    var projectDTO = new ProjectDTO(project.Id, project.Title, project.Description);
                    return(Json(projectDTO));
                }
                //Caso não consiga inserir retornar a messagem
                return(Json("Not insert project"));
            }
            catch (Exception ex)
            {
                //Retorna algum erro exceção
                return(new JsonResult(BadRequest())
                {
                    StatusCode = 400, Value = new GenericCommandResult(false, "ops! Algo de errado ocorreu, ", ex.Message + ex.InnerException)
                });
            }
        }
Exemplo n.º 2
0
        public JsonResult Update([FromBody] UpdateProjectCommand command, [FromServices] ProjectHandler handler, [FromServices] TimeHandler timeHandler)
        {
            //Verificar se passou algum comando
            if (command is null)
            {
                return new JsonResult(NotFound())
                       {
                           StatusCode = 404
                       }
            }
            ;

            try
            {
                //Executa o processor de atualização de projeto
                var resultProject = (GenericCommandResult)handler.Handle(command);

                //Verificar se ocorreu com sucesso
                if (resultProject.Success)
                {
                    var project = (Project)resultProject.Data;
                    foreach (var item in command.User_Id)
                    {
                        var user = _userRepository.GetById(item);
                        var time = _userTimeRepository.getTimeByProjectByUser(project.Id, item);
                        if (time != null)
                        {
                            var resultTime = timeHandler.Handle(new UpdateTimeCommand(time.Id, project.Id, user.Id, time.Started_at, time.Ended_at));
                        }
                    }
                    var projectDTO = new ProjectDTO(project.Id, project.Title, project.Description);
                    return(Json(projectDTO));
                }
                return(Json("Not update project"));
            }
            catch (Exception ex)
            {
                return(new JsonResult(BadRequest())
                {
                    StatusCode = 400, Value = new GenericCommandResult(false, "ops! Algo de errado ocorreu, ", ex.Message + ex.InnerException)
                });
            }
        }
    }
Exemplo n.º 3
0
 public async Task <GenericCommandResult> Delete([FromBody] DeleteProjectCommand command, [FromServices] ProjectHandler handler)
 {
     return((GenericCommandResult)await handler.Handle(command));
 }
 public ICommandResult Post([FromBody] CreateProjectCommand command)
 {
     return(_handler.Handle(command));
 }
Exemplo n.º 5
0
 public async Task <GenericCommandResult> RemoveDeveloperFromProject([FromBody] RemoveDeveloperFromProjectCommand command, [FromServices] ProjectHandler handler)
 {
     return((GenericCommandResult)await handler.Handle(command));
 }