public async Task <IActionResult> AddNewEmojis(AddEmojisInputModel model) { if (this.ModelState.IsValid) { string mesage = await this.addEmojisService.AddEmojis(model); this.TempData["Success"] = mesage; return(this.RedirectToAction("Index", "AddEmojis")); } else { this.TempData["Error"] = ErrorMessages.InvalidInputModel; return(this.RedirectToAction("Index", "AddEmojis", model)); } }
public async Task <string> AddEmojis(AddEmojisInputModel model) { var addedEmojisCount = 0; var notAddedEmojisCount = 0; var lastNumber = await this.db.Emojis .Where(x => x.EmojiType == model.EmojiType) .Select(x => x.Position) .OrderByDescending(x => x) .FirstOrDefaultAsync(); foreach (var file in model.Images) { var fileName = Path.GetFileNameWithoutExtension(file.FileName); if (this.db.Emojis.Any(x => x.Name.ToUpper() == fileName.ToUpper() && x.EmojiType == model.EmojiType)) { notAddedEmojisCount++; } else { var emoji = new Emoji { Name = fileName, Position = lastNumber + 1, EmojiType = model.EmojiType, }; var emojiUrl = await ApplicationCloudinary.UploadImage( this.cloudinary, file, string.Format(GlobalConstants.EmojiName, emoji.Id), GlobalConstants.EmojisFolder); emoji.Url = emojiUrl; lastNumber++; addedEmojisCount++; this.db.Emojis.Add(emoji); await this.db.SaveChangesAsync(); } } return(string.Format(SuccessMessages.SuccessfullyAddedEmojis, addedEmojisCount, notAddedEmojisCount)); }