Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }