private async Task <string> HandleMessageAsync(Message message)
        {
            if (message.Text.StartsWith("/subscribe"))
            {
                await SubscriptionDB.CreateAsync(new TelegramSubscription { ChatId = message.Chat.Id }).ConfigureAwait(false);

                return("Welcome! You subscribed to the notifications.");
            }
            if (message.Text.StartsWith("/ping"))
            {
                return("Pong!");
            }
            if (message.Text.StartsWith("/last"))
            {
                var lastMessage = await NotificationsDB.LoadLatestAsync().ConfigureAwait(false);

                if (lastMessage == null)
                {
                    return("No messages yet.");
                }

                var lastMessageTime = lastMessage.Timestamp + (message.Date - DateTime.UtcNow);
                var formattedStatus = FormatBookingStatus(lastMessage.Status);
                return($"Latest message was at {lastMessageTime:T}\n{formattedStatus}");
            }

            return(@"Usage:
/subscribe - subscribe to notifications
");
        }
        private void PopulateCBSub()
        {
            List <Subscription> subs = new List <Subscription>();

            subs = SubscriptionDB.GetSubscriptions();


            cbSubscription.DisplayMember = "Name";
            cbSubscription.ValueMember   = "ID";
            cbSubscription.DataSource    = subs;
        }
        private async Task NotifySubscribersAsync(BookingStatus bookingStatus)
        {
            var errors        = new List <Exception>();
            var subscriptions = await SubscriptionDB.LoadAllAsync().ConfigureAwait(false);

            foreach (var subscription in subscriptions)
            {
                try
                {
                    await Bot.SendTextMessageAsync(subscription.ChatId, FormatBookingStatus(bookingStatus), ParseMode.Markdown).ConfigureAwait(false);
                }
                catch (Exception e)
                {
                    errors.Add(e);
                }
            }
            if (errors.Any())
            {
                throw new AggregateException(errors);
            }
        }