Example #1
0
        public async Task CreateAsync(
            ImagesCreateInputModel imagesCreateInputModel,
            string creatorId,
            string url,
            string thumbUrl)
        {
            var imageToDb = Mapper.Map <Image>(imagesCreateInputModel);

            imageToDb.Url       = url;
            imageToDb.ThumbUrl  = thumbUrl;
            imageToDb.CreatorId = creatorId;
            imageToDb.CreatedOn = DateTime.UtcNow;
            imageToDb.IsDeleted = false;

            await this.db.Images.AddAsync(imageToDb);

            await this.db.SaveChangesAsync();
        }
Example #2
0
        public async Task <IActionResult> Upload(ImagesCreateInputModel imagesCreateInputModel)
        {
            if (!ModelState.IsValid)
            {
                return(this.View(imagesCreateInputModel));
            }

            var images = imagesCreateInputModel.Images.ToList();

            var errors = new List <string>();

            foreach (var image in images)
            {
                var isEmpty = image.Length == 0;
                if (isEmpty)
                {
                    errors.Add(string.Format(GlobalConstants.CorruptedImage, image.FileName));
                    continue;
                }

                var fileUrls = this.cloudFileUploader.UploadImageAsync(image);
                if (fileUrls == null)
                {
                    errors.Add(string.Format(GlobalConstants.CorruptedImage, image.FileName));
                    continue;
                }

                var userId = this.userManager.GetUserId(this.User);
                await this.imageService.CreateAsync(imagesCreateInputModel, userId, fileUrls.Url, fileUrls.ThumbUrl);
            }

            if (errors.Any())
            {
                var formattedErrors = string.Join(GlobalConstants.HtmlNewLine, errors);
                this.SetAlertMessage(AlertMessageLevel.Error, formattedErrors);
            }
            else
            {
                this.SetAlertMessage(AlertMessageLevel.Success, GlobalConstants.SuccessfulImageUpload);
            }

            return(this.RedirectToAction(nameof(Upload)));
        }