public HandleMessageCommand Handle(Message message, Service service, MessageHandler handler)
        {
            var textMessage = message as TextMessage;

            if (textMessage?.Text == null)
            {
                return(null);
            }
            var reply = message.ReplyToMessage as TextMessage;

            if (reply == null)
            {
                return(null);
            }

            if (!reply.Text.StartsWith(ForceReplyCommand.NEW_LABEL_COMMAND,
                                       StringComparison.CurrentCultureIgnoreCase))
            {
                return(null);
            }

            HandleMessageCommand del = async sender => await handler.HandleCreateNewLabelForceReply(textMessage, service);

            return(del);
        }
        public HandleMessageCommand Handle(Message message, Service service, MessageHandler handler)
        {
            var textMessage = message as TextMessage;

            if (textMessage?.Text == null)
            {
                return(null);
            }
            var reply = message.ReplyToMessage as TextMessage;

            if (reply == null)
            {
                return(null);
            }

            if (!reply.Text.StartsWith(ForceReplyCommand.REMOVE_FROM_IGNORE_COMMAND,
                                       StringComparison.CurrentCultureIgnoreCase))
            {
                return(null);
            }

            HandleMessageCommand del = async sender => await handler.HandleRemoveFromIgnoreForceReply(textMessage);

            return(del);
        }
        public HandleMessageCommand Handle(Message message, Service service, MessageHandler handler)
        {
            var textMessage = message as TextMessage;

            if (textMessage == null)
            {
                return(null);
            }

            HandleMessageCommand del = async sender => await handler.HandleTestThreadCommand(service);

            if (textMessage.Text.StartsWith(TextCommand.TEST_THREAD_COMMAND, StringComparison.CurrentCultureIgnoreCase))
            {
                return(del);
            }

            return(null);
        }
        public HandleMessageCommand Handle(Message message, Service service, MessageHandler handler)
        {
            var textMessage = message as TextMessage;

            if (textMessage == null)
            {
                return(null);
            }

            if (textMessage.Text.StartsWith(TextCommand.SETTINGS_COMMAND, StringComparison.CurrentCultureIgnoreCase))
            {
                HandleMessageCommand del = async sender => await handler.HandleSettingsCommand(textMessage);

                return(del);
            }

            return(null);
        }
        public HandleMessageCommand Handle(Message message, Service service, MessageHandler handler)
        {
            var textMessage = message as TextMessage;

            if (textMessage == null)
            {
                return(null);
            }

            HandleMessageCommand del = async sender => await handler.HandleStopWatchCommandAsync(service);

            if (textMessage.Text.StartsWith(TextCommand.STOP_WATCH_COMMAND, StringComparison.CurrentCultureIgnoreCase))
            {
                return(del);
            }

            return(null);
        }
        public HandleMessageCommand Handle(Message message, Service service, MessageHandler handler)
        {
            var docMessage = message as DocumentMessage;

            var reply = docMessage?.ReplyToMessage as TextMessage;

            if (reply == null)
            {
                return(null);
            }

            HandleMessageCommand del = async sender => await handler.HandleFileForceReply(docMessage);

            if (reply.Text.StartsWith(ForceReplyCommand.MESSAGE_COMMAND, StringComparison.CurrentCultureIgnoreCase))
            {
                return(del);
            }

            return(null);
        }
        public HandleMessageCommand Handle(Message message, Service service, MessageHandler handler)
        {
            var textMessage = message as TextMessage;

            if (textMessage?.Text == null)
            {
                return(null);
            }
            var reply = message.ReplyToMessage as TextMessage;

            if (reply == null)
            {
                return(null);
            }

            HandleMessageCommand del = async sender => await handler.HandleSubjectForceReply(textMessage);

            if (reply.Text.StartsWith(ForceReplyCommand.SUBJECT_COMMAND, StringComparison.CurrentCultureIgnoreCase))
            {
                return(del);
            }

            return(null);
        }