private async Task InputInboundRule(Message message)
        {
            var firewall = new Requests.Firewall
            {
                Name = message.Text
            };

            _sessionRepo.Update(message.From.Id, session =>
            {
                session.Data  = firewall;
                session.State = SessionState.WaitInputInboundFirewallRule;
            });

            await _telegramBotClient.SendTextMessageAsync(message.Chat.Id, "Input an inbound rule in format:\n*tcp or udp or icmp:port or range:addresses*\n\nFor example:\n*tcp:80:0.0.0.0/0;icmp:8000-9000:0.0.0.0/0;udp:421:1.1.1.1,0.0.0.0/0*", ParseMode.Markdown);
        }
        private async Task EnterName(Message message)
        {
            var newFirewall = new FirewallRequest
            {
                Name = message.Text
            };

            _storageService.AddOrUpdate(StorageKeys.NewFirewall, newFirewall);
            _storageService.AddOrUpdate(StorageKeys.BotCurrentState, BotStateType.FirewallCreateWaitingEnterInboundRule);

            await _telegramBotClient.SendTextMessageAsync(
                chatId : message.Chat.Id,
                text : FirewallMessage.GetEnterBoundRuleMessage("inbound"),
                parseMode : ParseMode.Html);
        }