public async Task <Response> Handle(Request request, CancellationToken cancellationToken) { return(new Response() { DigitalAsset = DigitalAssetApiModel.FromDigitalAsset(await _context .DigitalAssets .FindAsync(request.DigitalAssetId)) }); }
public async Task <Response> Handle(Request request, CancellationToken cancellationToken) { var digitalAssets = await _context.DigitalAssets.ToListAsync(); return(new Response() { DigitalAssets = digitalAssets.Select(x => DigitalAssetApiModel.FromDigitalAsset(x)).ToList() }); }
public async Task <Response> Handle(Request request, CancellationToken cancellationToken) { var digitalAssets = new HashSet <DigitalAssetApiModel>(); if (!MultipartRequestHelper.IsMultipartContentType(_httpContext.Request.ContentType)) { throw new Exception($"Expected a multipart request, but got {_httpContext.Request.ContentType}"); } var boundary = MultipartRequestHelper.GetBoundary( MediaTypeHeaderValue.Parse(_httpContext.Request.ContentType), _defaultFormOptions.MultipartBoundaryLengthLimit); var reader = new MultipartReader(boundary, _httpContext.Request.Body); var section = await reader.ReadNextSectionAsync(); while (section != null) { ContentDispositionHeaderValue contentDisposition; var hasContentDispositionHeader = ContentDispositionHeaderValue.TryParse(section.ContentDisposition, out contentDisposition); if (hasContentDispositionHeader) { if (MultipartRequestHelper.HasFileContentDisposition(contentDisposition)) { using (var targetStream = new MemoryStream()) { await section.Body.CopyToAsync(targetStream); var bytes = StreamHelper.ReadToEnd(targetStream); var tenant = await _context.Tenants.FindAsync(new Guid(_httpContext.Request.GetHeaderValue("Tenant"))); var digitalAsset = new DigitalAsset(); digitalAsset.Tenant = tenant; digitalAsset.FileName = $"{contentDisposition.FileName}".Trim(new char[] { '"' }).Replace("&", "and"); digitalAsset.Name = digitalAsset.FileName; digitalAsset.Bytes = bytes; digitalAsset.ContentType = section.ContentType; digitalAsset.UploadedOn = DateTime.UtcNow; _context.DigitalAssets.Add(digitalAsset); await _context.SaveChangesAsync(cancellationToken, request.Username); digitalAssets.Add(DigitalAssetApiModel.FromDigitalAsset(digitalAsset)); } } } section = await reader.ReadNextSectionAsync(); } return(new Response() { }); }
public static DigitalAssetApiModel FromDigitalAsset(DigitalAsset digitalAsset) { var model = new DigitalAssetApiModel(); model.DigitalAssetId = digitalAsset.DigitalAssetId; model.Folder = digitalAsset.Folder; model.Name = digitalAsset.Name; model.FileName = digitalAsset.FileName; model.Description = digitalAsset.Description; model.Created = digitalAsset.Created; model.FileModified = digitalAsset.FileModified; model.Size = digitalAsset.Size; model.Bytes = digitalAsset.Bytes; model.ContentType = digitalAsset.ContentType; model.IsSecure = digitalAsset.IsSecure; model.CreatedOn = digitalAsset.CreatedOn; model.CreatedBy = digitalAsset.CreatedBy; model.UploadedOn = string.Format("{0:yyyy-MM-dd HH:mm}", digitalAsset.UploadedOn); model.UploadedBy = digitalAsset.UploadedBy; return(model); }