示例#1
0
        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;
        }
示例#2
0
        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;
        }