public async Task CopyImageToDataBlock(DataBlock dataBlock, Image image, CancellationToken cancellationToken) { Image entity = new Image() { Title = image.Title, Description = image.Description, ImageData = image.ImageData, ImageType = image.ImageType, Privacy = new PrivacyEntity() { PrivacyLevel = image.Privacy.PrivacyLevel, BeginDate = image.Privacy.BeginDate, EndDate = image.Privacy.EndDate, IsAlways = image.Privacy.IsAlways } }; DataBlockImage dataBlockImage = new DataBlockImage() { DataBlock = dataBlock, Image = entity }; _context.DataBlockImages.Add(dataBlockImage); _context.Images.Add(entity); await _context.SaveChangesAsync(cancellationToken); }
public async Task <int> Handle(CreateImageCommand request, CancellationToken cancellationToken) { DataBlock dataBlock = await _context.DataBlocks .SingleOrDefaultAsync(db => db.CreatedBy.Equals(request.UserId) && db.Id == request.DataBlockId, cancellationToken); if (dataBlock == null) { throw new NotFoundException(nameof(DataBlock), request.DataBlockId); } Image entity = new Image() { Title = request.Title, Description = request.Description, ImageType = request.ImageFile.ContentType.Split('/')[1], Privacy = new PrivacyEntity() { PrivacyLevel = PrivacyLevel.Confidential, IsAlways = true } }; using (var streamReader = new BinaryReader(request.ImageFile.OpenReadStream())) entity.ImageData = streamReader.ReadBytes(Convert.ToInt32(request.ImageFile.Length)); DataBlockImage dataBlockImage = new DataBlockImage() { DataBlock = dataBlock, Image = entity }; _context.Images.Add(entity); _context.DataBlockImages.Add(dataBlockImage); await _context.SaveChangesAsync(cancellationToken); return(entity.Id); }