protected override async Task OnMessageActivityAsync(ITurnContext <IMessageActivity> turnContext, CancellationToken cancellationToken)
        {
            string memberId = turnContext.Activity.Recipient.Id;

            string[] message = turnContext.Activity.Text.Split(' ').Select(a => a.ToLower()).ToArray();
            switch (message[0].ToLower())
            {
            case "/subscribe":
                if (message.Length == 1)
                {
                    await turnContext.SendActivityAsync(MessageFactory.Text("Please type /subscribe and Name of subreddit after space"), cancellationToken);

                    break;
                }
                if (!RedditSubscription.RedditHot.IsKeyCorrect(message[1]))
                {
                    await turnContext.SendActivityAsync(MessageFactory.Text

                                                            ("Please take existing SubReddit (NOTE: maybe you typed \"r\\*subreddit_name*\" instead of \"*subreddit*\"?"));

                    break;
                }
                if (!DBOperations.DoesSubExist(memberId, "RedditHot", message[1]))
                {
                    DBOperations.AddSub(memberId, "RedditHot", message[1]);
                }
                else
                {
                    await turnContext.SendActivityAsync(MessageFactory.Text("You're already subscribed, retart"));
                }
                break;

            case "/unsubscribe":
                if (message.Length == 1)
                {
                    await turnContext.SendActivityAsync(MessageFactory.Text("Please type /unsubscribe and Name of subreddit after space"), cancellationToken);

                    break;
                }
                if (DBOperations.DoesSubExist(memberId, "RedditHot", message[1]))
                {
                    DBOperations.RemoveSub(memberId, "RedditHot", message[1]);
                }
                break;

            default:
                var replyText = "I'm the f*****g bot. I can't talk with you, sorry";
                await turnContext.SendActivityAsync(MessageFactory.Text(replyText, replyText), cancellationToken);

                break;
            }
            if (isLoopStarted)
            {
                return;
            }
            isLoopStarted = true;

            while (true)
            {
                var sub = DBOperations.GetSubWithZeroPriority(memberId);
                if (sub == null)
                {
                    continue;
                }
                var subName = sub.Subscription;
                var subKey  = sub.SubscriptionKey;
                if (subName == "RedditHot")
                {
                    var    subreddit = RedditSubscription.RedditHot;
                    var    content   = subreddit.Content(subKey).First(content => !DBOperations.HaveUserSeenContent(memberId, content.UniqueID));
                    string text      = subKey + ": " + content.ToMessage;
                    await turnContext.SendActivityAsync(MessageFactory.Text(text), cancellationToken);

                    DBOperations.AddSeenContent(memberId, content.UniqueID);
                    DBOperations.ShiftPriority(memberId);
                    Thread.Sleep(5000);
                }
            }
        }