public async Task <ServiceResult <TemplateItemBo> > UploadTemplateAsync(TemplateUploadRequestContext uploadRequestContext, CancellationToken token) { var validationResult = await this._validationsProvider.TemplateUploadValidator.ValidateAsync(uploadRequestContext, token); if (!validationResult.IsValid) { return(new ServiceResult <TemplateItemBo> { Errors = validationResult.Errors.ToServiceResultErrors() }); } var azureStorageResult = await this._azureStorageServicesFacade.SaveBlobInContainerAsync(uploadRequestContext, token); if (azureStorageResult.IsNull()) { return(new ServiceResult <TemplateItemBo> { Errors = new[] { new Error { Code = "TEMPALTE_FILE_UPLOADFAILED_ERROR" } } }); } var mapperResult = this._autoMapperService.Map <TemplateEntity>(azureStorageResult); mapperResult.CreatedBy = uploadRequestContext.User.GetUserId(); var repositoryResult = await this._templateRepository.CreateAsync(mapperResult, token); return(new ServiceResult <TemplateItemBo> { Value = this._autoMapperService.Map <TemplateItemBo>(repositoryResult) }); }
public async Task <ServiceResult <TemplateItemBo> > UploadTemplateAsync(TemplateUploadRequestContext uploadRequestContext, CancellationToken token) { Contract.Requires(uploadRequestContext.IsNotNull()); Contract.Requires(token.IsNotNull()); Contract.Ensures(Contract.Result <ServiceResult <TemplateItemBo> >().IsNotNull()); return(default(ServiceResult <TemplateItemBo>)); }
public async Task <CloudBlockBlob> SaveBlobInContainerAsync(TemplateUploadRequestContext uploadRequestContext, CancellationToken token) { try { var fileName = uploadRequestContext.File.FileName; var containerName = "templates"; return(await this.UploadFileAsync(uploadRequestContext.File, fileName, containerName)); } catch (Exception) { return(null); } }
public async Task <IActionResult> UploadTemplateAsync(IFormCollection formCollection, CancellationToken token = default(CancellationToken)) { try { var formFile = formCollection.Files.First(); var templateRequestContext = new TemplateUploadRequestContext { File = formFile, User = this.User }; var serviceResult = await this._templateService.UploadTemplateAsync(templateRequestContext, token); if (serviceResult.HasErrors) { return(new BadRequestObjectResult(serviceResult.Errors)); } var mapperResult = this._autoMapperService.Map <TemplateResponseDto>(serviceResult.Value); return(this.CreatedAtRoute(nameof(this.GetTemplateByIdAsync), new { id = mapperResult.Data.Id }, mapperResult)); } catch (Exception) { return(new BadRequestResult()); } }