Пример #1
0
        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);
        }
Пример #2
0
        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));
        }