public async Task <ActionResult <IEnumerable <PhotoModel> > > Create([FromForm] UpdatePhotosModel photosModel) { var count = photosModel.Names?.Count ?? 0; if (count == 0 || photosModel.Images.Count != count || photosModel.Thumbnails.Count != count || photosModel.Images.Concat(photosModel.Thumbnails).Any(p => p == null || p.Length == 0)) { return(BadRequest()); } var result = new List <PhotoModel>(count); for (var i = 0; i < count; i++) { var image = photosModel.Images[i]; var thumbnail = photosModel.Thumbnails[i]; var photo = new Photo { Name = photosModel.Names[i], }; using (var ms = new MemoryStream()) { image.CopyTo(ms); photo.Image = ms.ToArray(); } using (var ms = new MemoryStream()) { thumbnail.CopyTo(ms); photo.Thumbnail = ms.ToArray(); } _dbContext.Photos.Add(photo); await _dbContext.SaveChangesAsync(); result.Add(new PhotoModel { Id = photo.Id, Name = photo.Name }); } return(Ok(result)); }
public async Task <ActionResult> Update([FromForm] UpdatePhotosModel photosModel) { var count = photosModel.Names?.Count ?? 0; if (count == 0 || photosModel.Ids.Count != count || photosModel.Images.Count != count || photosModel.Thumbnails.Count != count || photosModel.Images.Concat(photosModel.Thumbnails).Any(p => p == null || p.Length == 0)) { return(BadRequest()); } for (var i = 0; i < count; i++) { var image = photosModel.Images[i]; var thumbnail = photosModel.Thumbnails[i]; var photo = new Photo { Id = photosModel.Ids[i], Name = photosModel.Names[i], }; using (var ms = new MemoryStream()) { image.CopyTo(ms); photo.Image = ms.ToArray(); } using (var ms = new MemoryStream()) { thumbnail.CopyTo(ms); photo.Thumbnail = ms.ToArray(); } _dbContext.Photos.Attach(photo); await _dbContext.SaveChangesAsync(); } return(Ok()); }