public async Task <bool> Handle(CreateJobTaskRequest message, IOutputPort <CreateJobTaskResponse> outputPort) { bool isOwner = await jobOwnerShipValidator.IsJobOwner(message.CallerId, message.JobId); var loadedJob = await jobRepository.GetById(message.JobId); if (loadedJob == null) { outputPort.Handle(new CreateJobTaskResponse(new[] { applicationErrorFactory.ResourceNotFound })); return(false); } if (!isOwner) { outputPort.Handle(new CreateJobTaskResponse(new[] { applicationErrorFactory.ResourceNotOwned })); return(false); } var taskEntity = loadedJob.AddTask(message.Name, message.Description, message.FinishDate); await jobRepository.Update(loadedJob); outputPort.Handle(new CreateJobTaskResponse(taskEntity.Id)); return(true); }
public IHttpActionResult Post( [FromUri] CreateJobTaskRequest request, [FromBody] CreateJobTaskPayload jobTaskPayload) { if (!ModelState.IsValid) { return(BadRequestWithErrors()); } request.Payload = jobTaskPayload; request.OrganizationUserId = Credential.OrganizationUserId; var result = _createJobTaskRequest.Process(request); return(Ok(result)); }