public string Post([FromBody] VkCallbackUpdateModel update)
        {
            switch (update.Type)
            {
            case VkUpdateType.Confirmation:
                return(_configurationHelper.GetCallbackConfirmationString());

            case VkUpdateType.GroupJoin:
                _botUserService.CreateSubscription(update.Object.UserId, JoinType.Join);
                break;

            case VkUpdateType.GroupLeave:
                _botUserService.CreateSubscription(update.Object.UserId, JoinType.Leave);
                break;

            case VkUpdateType.MessageNew:

                if (_receivedMessageService.IsReceived(update.Object.UserId, update.Object.Id))
                {
                    return("ok");
                }

                _receivedMessageService.Create(new ReceivedMessage
                {
                    MessageId = update.Object.Id,
                    BotUser   = _botUserService.Get(update.Object.UserId)
                });

                var body = update.Object.Body;

                var keyboardLabels = _keyboardService.GetActiveKeyboard().Buttons.OrderBy(p => p.Postition)
                                     .Select(p => p.Emoji.Symbol)
                                     .ToList();

                if (_receivedMessageService.IsFirstMessage(update.Object.UserId, update.Object.Id))
                {
                    _vkGroupMessageService.SendMessage(
                        userId: update.Object.UserId,
                        message: "Кстати, с этим сообщением я отправил тебе клавиатуру.\n\n " +
                        "Ты можешь её использовать, чтобы получать новые стикеры одним нажатием.\n\n" +
                        "Для всех смайлов на клавиатуре у меня есть стикеры 😉",
                        keyboardLabels: keyboardLabels);
                }

                if (_emojiService.IsExist(body))
                {
                    var sticker = _stickerService.GetStickerByEmoji(body, update.Object.UserId);

                    if (sticker == null)
                    {
                        _vkGroupMessageService.SendMessage(update.Object.UserId,
                                                           "Вот это ты мне смайл прислал 😱\n\n" +
                                                           "Даже не знаю, какой стикер тебе отправить. \n\n " +
                                                           "Обязательно подберу для него стикер в будущем!",
                                                           keyboardLabels: keyboardLabels);
                    }
                    else
                    {
                        _vkGroupMessageService.SendMessage(userId: update.Object.UserId,
                                                           photoId: sticker.VkImageId, keyboardLabels: keyboardLabels);
                    }

                    return("Ok");
                }

                if (update.Object.Body.EqualsIgnoreCase("Случайный стикер"))
                {
                    var sticker = _stickerService.GetRandomSticker();

                    _vkGroupMessageService.SendMessage(userId: update.Object.UserId,
                                                       photoId: sticker.VkImageId, keyboardLabels: keyboardLabels);

                    return("Ok");
                }

                if (!update.Object.Body.EqualsIgnoreCase("Начать"))
                {
                    _vkGroupMessageService.SendMessage(update.Object.UserId,
                                                       "Даже не знаю, что тебе на это ответить 😔\n\n" +
                                                       "Пока я могу отвечать только на смайлы. Попробуешь использовать клавиатуру, которую я прислал? \n\n" +
                                                       "Тогда я точно смогу прислать тебе ответ.",
                                                       keyboardLabels: keyboardLabels);
                }

                break;

            case null:
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }


            return("ok");
        }