Пример #1
0
        public async Task <IOutputPort> Handle(CreateDraftApplicationInput input, CancellationToken cancellationToken)
        {
            try
            {
                await this._validator.ValidateAndThrowAsync(input, cancellationToken);

                var draftApplication = this._draftApplicationFactory.Create(input);

                if (this.IfAddedAttachmentsExists(input))
                {
                    var files = await this.UploadFilesToStorage(input);

                    this.AddUploadedFilesAsAttachments(draftApplication, files);
                }

                await this._draftApplicationRepository.Create(draftApplication,
                                                              cancellationToken);

                this.BuildOutput(draftApplication);
            }
            catch (BusinessRuleValidationException ex)
            {
                this._outputPort.WriteBusinessRuleError(ex.ToString());
            }
            catch (ValidationException ex)
            {
                this._outputPort.WriteInvalidInput(ex.MapToInvaliInputErrors());
            }

            return(this._outputPort);
        }
Пример #2
0
 public DraftApplication Create(CreateDraftApplicationInput request)
 {
     return(DraftApplication.Create(
                new Title(request.Title),
                new Content(request.Content),
                new IncidentType(request.IncidentType),
                new EmployeeId(this._applicantContext.UserId),
                new List <EmployeeId>(
                    request.SuspiciousEmployees.Select(x => new EmployeeId(x)))
                ));
 }
Пример #3
0
 private Task <List <UploadedFile> > UploadFilesToStorage(CreateDraftApplicationInput request)
 {
     return(this._fileStorageService.UploadFiles(request.Attachments));
 }
Пример #4
0
 private bool IfAddedAttachmentsExists(CreateDraftApplicationInput request)
 {
     return(request.Attachments != null && request.Attachments.Any());
 }