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