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) }); } }
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) }); } } }
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)); }
public async Task <GenericCommandResult> RemoveDeveloperFromProject([FromBody] RemoveDeveloperFromProjectCommand command, [FromServices] ProjectHandler handler) { return((GenericCommandResult)await handler.Handle(command)); }