Exemple #1
0
        public void Send()
        {
            if (IsEncrypt)
            {
                throw new ArgumentException("An encrypted message cannot send");
            }

            if (!IsDownloaded)
            {
                throw new ArgumentException("An undownloaded message cannot send");
            }

            IMessageManager messageManager = ModulesManager.GetMessageManager();

            switch (type)
            {
            case StashMessageType.Text:
                _ = messageManager.SendTextMessageAsync(ChatId, content, keyboardForStashMessage.ForTextMessage());
                break;

            case StashMessageType.Photo:
                byte[] imageBytes = Convert.FromBase64String(content);
                _ = messageManager.SendPhotoMessageAsync(ChatId, imageBytes, keyboardForStashMessage.ForPhotoMessage());
                break;

            case StashMessageType.Empty:
                break;

            default:
                break;
            }
        }
Exemple #2
0
        private bool CheckPassword(long chatId, string password)
        {
            IMessageManager messageManager = ModulesManager.GetMessageManager();

            if (string.IsNullOrEmpty(password))
            {
                messageManager.SendTextMessageAsync(chatId, TextResponse.Get(ResponseType.PasswordEmpty), null);
                return(false);
            }

            if (password.Length < 12)
            {
                messageManager.SendTextMessageAsync(chatId, TextResponse.Get(ResponseType.PasswordMinLength), null);
                return(false);
            }

            if (password.Length > 25)
            {
                messageManager.SendTextMessageAsync(chatId, TextResponse.Get(ResponseType.PasswordMaxLength), null);
                return(false);
            }

            if (!Regex.IsMatch(password, @"^[a-zA-Z0-9!""#$%&'()*+,-./:;<=>?@[\]^_`{|}~]+$"))
            {
                messageManager.SendTextMessageAsync(chatId, TextResponse.Get(ResponseType.PasswordCharacters), null);
                return(false);
            }

            return(true);
        }
Exemple #3
0
        private void OnMessage(object sender, MessageEventArgs e)
        {
            IMessageManager messageManager = ModulesManager.GetMessageManager();

            ITelegramUserMessage userMessage = telegramUserMessageFactory.Create(e.Message);

            messageManager.HandleUserMessage(userMessage);
        }
        private void Logout(long chatId, IChatStateHandlerContext context)
        {
            IMessageManager messageManager = ModulesManager.GetMessageManager();
            IUserManager    userManager    = ModulesManager.GetUserManager();

            userManager.LogoutUser(chatId);
            messageManager.SendTextMessageAsync(chatId, TextResponse.Get(ResponseType.Logout), null);
            context.ChangeChatState(chatId, ChatSessionState.Start);
        }
Exemple #5
0
        public void Kill()
        {
            IMessageManager messageManager = ModulesManager.GetMessageManager();
            IUserManager    userManager    = ModulesManager.GetUserManager();

            List <int> copyBotMessagesId  = new List <int>(botMessagesId);
            List <int> copyUserMessagesId = new List <int>(userMessagesId);

            messageManager.DeleteListMessages(ChatId, copyBotMessagesId);
            messageManager.DeleteListMessages(ChatId, copyUserMessagesId);
            userManager.LogoutUser(ChatId);
        }
Exemple #6
0
        private void RegistrationUser(ITelegramUserMessage message, IChatStateHandlerContext context)
        {
            IMessageManager messageManager = ModulesManager.GetMessageManager();
            IUserManager    userManager    = ModulesManager.GetUserManager();

            messageManager.DeleteMessage(message.ChatId, message.MessageId);

            if (CheckPassword(message.ChatId, message.Message))
            {
                userManager.CreateNewUser(message.ChatId, message.Message);
                messageManager.SendTextMessageAsync(message.ChatId, TextResponse.Get(ResponseType.Success), null);
                context.ChangeChatState(message.ChatId, ChatSessionState.Start);
            }
        }
Exemple #7
0
        private void LoginUser(ITelegramUserMessage message, IChatStateHandlerContext context)
        {
            IMessageManager messageManager = ModulesManager.GetMessageManager();
            IUserManager    userManager    = ModulesManager.GetUserManager();

            messageManager.DeleteMessage(message.ChatId, message.MessageId);

            bool success = userManager.LoginUser(message.ChatId, message.Message);

            if (success)
            {
                messageManager.SendTextMessageAsync(message.ChatId, TextResponse.Get(ResponseType.Success), null);
                context.ChangeChatState(message.ChatId, ChatSessionState.Authorized);
            }
            else
            {
                messageManager.SendTextMessageAsync(message.ChatId, TextResponse.Get(ResponseType.FailAuthorisation), null);
            }
        }
        public void Handle(string[] queryArray, int messageId)
        {
            IDatabaseManager databaseManager = ModulesManager.GetDatabaseManager();
            IMessageManager  messageManager  = ModulesManager.GetMessageManager();

            if (queryArray.Length < MIN_PARAMETERS_COUNT)
            {
                return;
            }

            bool isChatIdParsed            = long.TryParse(queryArray[1], out long chatId);
            bool isDatabaseMessageIdParsed = long.TryParse(queryArray[2], out long databaseMessageId);

            if (!isChatIdParsed || !isDatabaseMessageIdParsed)
            {
                return;
            }

            databaseManager.DeleteStashMessage(chatId, databaseMessageId);
            messageManager.DeleteMessage(chatId, messageId);
        }
        private void GetStash(long chatId, IChatStateHandlerContext context)
        {
            IDatabaseManager databaseManager = ModulesManager.GetDatabaseManager();
            IMessageManager  messageManager  = ModulesManager.GetMessageManager();

            IUser user = databaseManager.GetUser(chatId);

            if (user != null && user.IsAuthorized)
            {
                ICollection <IStashMessage> messagesFromStash = databaseManager.GetMessagesFromStash(chatId);
                if (messagesFromStash.Count == 0)
                {
                    messageManager.SendTextMessageAsync(chatId, TextResponse.Get(ResponseType.EmptyStash), null);
                }
                else
                {
                    foreach (IStashMessage stashMessage in messagesFromStash)
                    {
                        stashMessage.Decrypt(user);
                        stashMessage.Send();
                    }
                }
            }
        }
Exemple #10
0
        public void Handle(long chatId)
        {
            IMessageManager messageManager = ModulesManager.GetMessageManager();

            messageManager.SendTextMessageAsync(chatId, TextResponse.Get(ResponseType.FullStashError), null);
        }
        private void Information(long chatId, IChatStateHandlerContext context)
        {
            IMessageManager messageManager = ModulesManager.GetMessageManager();

            messageManager.SendTextMessageAsync(chatId, TextResponse.Get(ResponseType.Information), null);
        }
        public void StartStateMessage(long chatId)
        {
            IMessageManager messageManager = ModulesManager.GetMessageManager();

            messageManager.SendTextMessageAsync(chatId, TextResponse.Get(ResponseType.MainCommands), chatCommands.CreateReplyKeyboard());
        }