public async Task<RawFile> ProcessImage(RawFile rawImage) { rawImage.Content = await this.imageProcessor .Resize(rawImage.Content, GlobalConstants.ResizedImageWidth); rawImage.PreviewContent = await this.imageProcessor .Resize(rawImage.Content, GlobalConstants.ResizedImageThumbnailWidth); return rawImage; }
public async Task<int> Add( string title, string autenticatedUserId, string description, bool isPrivate, RawFile rawImage, IEnumerable<Tag> imageTags = null, IEnumerable<Album> imageAlbums = null) { var currentUser = this.Users .All() .FirstOrDefault(u => u.Id == autenticatedUserId && u.IsDeleted == false); if (currentUser == null) { return GlobalConstants.ItemNotFoundReturnValue; } var newImageInfo = new ImageInfo() { OriginalName = rawImage.OriginalFileName, OriginalExtension = rawImage.FileExtension, }; var newImage = new Image() { Title = title, Author = currentUser, Description = description, IsPrivate = isPrivate, UploadedOn = DateTime.Now, ImageInfo = newImageInfo, }; var guid = Guid.NewGuid().ToString(); newImage.Url = await this.webSrorageService .UploadImageToCloud( rawImage.Content, guid, rawImage.FileExtension, currentUser.Id); newImage.ThumbnailUrl = await this.webSrorageService .UploadImageToCloud( rawImage.PreviewContent, guid + ThumbnailExtension, rawImage.FileExtension, currentUser.Id); if (imageTags != null) { imageTags.ForEach(t => { newImage.Tags.Add(t); }); } if (imageAlbums != null) { imageAlbums.ForEach(a => { newImage.Albums.Add(a); }); } try { this.images.Add(newImage); await this.images.SaveChangesAsync(); } catch (Exception e) { var er = e.Message; } try { string notification = string.Format("{0} added picture {1}", currentUser.UserName, title); this.notifier.Notify(notification); } catch (Exception ex) { throw new Exception(ex.Message); } return newImage.Id; }