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; } }
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); }
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); }
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); }
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); } }
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(); } } } }
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()); }