Beispiel #1
0
        public async Task <Tuple <bool, string> > AddEmoji(AddEmojiInputModel model)
        {
            if (this.db.Emojis.Any(x => x.Name.ToUpper() == model.Name.ToUpper() && x.EmojiType == model.EmojiType))
            {
                return(Tuple.Create(false, string.Format(ErrorMessages.EmojiAlreadyExist, model.Name.ToUpper())));
            }
            else
            {
                var lastNumber = await this.db.Emojis
                                 .Where(x => x.EmojiType == model.EmojiType)
                                 .Select(x => x.Position)
                                 .OrderByDescending(x => x)
                                 .FirstOrDefaultAsync();

                var emoji = new Emoji
                {
                    EmojiType = model.EmojiType,
                    Name      = model.Name,
                    Position  = lastNumber + 1,
                };

                var imageUrl = await ApplicationCloudinary.UploadImage(
                    this.cloudinary,
                    model.Image,
                    string.Format(GlobalConstants.EmojiName, emoji.Id),
                    GlobalConstants.EmojisFolder);

                emoji.Url = imageUrl;

                this.db.Emojis.Add(emoji);
                await this.db.SaveChangesAsync();

                return(Tuple.Create(true, string.Format(SuccessMessages.SuccessfullyAddedEmoji, emoji.Name)));
            }
        }
        public async Task <IActionResult> AddNewEmoji(AddEmojiInputModel model)
        {
            if (this.ModelState.IsValid)
            {
                var result = await this.addEmojiService.AddEmoji(model);

                if (!result.Item1)
                {
                    this.TempData["Error"] = result.Item2;
                    return(this.RedirectToAction("Index", "AddEmoji", model));
                }

                this.TempData["Success"] = result.Item2;
                return(this.RedirectToAction("Index", "AddEmoji"));
            }
            else
            {
                this.TempData["Error"] = ErrorMessages.InvalidInputModel;
                return(this.RedirectToAction("Index", "AddEmoji", model));
            }
        }