/// <summary> /// Метод, где возвращается ответ только для не авторизованных пользователей /// </summary> /// <param name="message">Команда бота</param> /// <returns>Ответ которую получит пользователь</returns> public async static Task <string> GetAnswerAnonymousUser(string message, EcampusClient clientECampus) { switch (message.ToLower()) { case var text when message.Contains(":") && message.Split(':').Length == 2: { var login = await clientECampus.LoginAsync(message.Split(':')[0], message.Split(':')[1]); if (login.IsSuccess) { return("Вы успешно авторизовались в систему"); } else { return("Неверное имя пользователя или пароль"); } } case var text when message.ToLower().Contains("начать"): { return("Здравствуйте, я Ваш помощник ECampusBot 🤖\n" + "Для дальнейшей работы со мной, Вам нужно авторизоваться в \"Электронный кампус СКФУ\"👨‍💻\n" + "Пример: login:password"); } } return("Неверная команда"); }
public void RunVkBot() { messageManager.OnNewMessage += async(message) => { var userId = message.FromId; var fdd = message.Payload; var text = message.Text; var sheduleKeyboard = Commands.GetOptionalKeyboard(); EcampusClient clientECampus = new EcampusClient(); var isExist = db.GetUserById(userId); try { if (isExist == null && !text.Contains(":") && text.Split(':').Length != 2) { await messageManager.SendMessageAsync("Здравствуйте, я Ваш помощник ECampusBot 🤖\n" + "Для дальнейшей работы со мной, Вам нужно авторизоваться в \"Электронный кампус СКФУ\"👨‍💻\n" + "Пример: login:password", userId); return; } if (text.ToLower() == "начать") { if (isExist == null) { await messageManager.SendMessageAsync("Здравствуйте, я Ваш помощник ECampusBot 🤖\n" + "Для дальнейшей работы со мной, Вам нужно авторизоваться в \"Электронный кампус СКФУ\"👨‍💻\n" + "Пример: login:password", userId); return; } else { await messageManager.SendMessageAsync("Функционал бота", userId); } } } catch (Exception ex) { await messageManager.SendMessageAsync("Упс! Что-то пошло не так 🤕\n" + "Мы найдем и исправим эту ошибку 🕵 \n" + ex.Message, userId); } // ДЛЯ АВТОРИЗОВАННЫХ ЮЗЕРОВ try { if (isExist != null) { var login = await clientECampus.LoginAsync(isExist.Split(':')[0], isExist.Split(':')[1]); if (login.IsSuccess) { //TODO //Ответы бота должны иметь класс, где мы можем увидеть тип ответа(txt,img,video and etc) string answer = await Commands.GetAnswerForAuthorizeUser(text, clientECampus); if (answer.Contains(".jpg")) { await messageManager.SendMessagePhotoAsync(answer, userId); return; } await messageManager.SendMessageAsync(answer, userId, sheduleKeyboard); return; } else { await messageManager.SendMessageAsync("Сервер вернул ошибку", userId, sheduleKeyboard); } } else { var answer = await Commands.GetAnswerAnonymousUser(text, clientECampus); if (answer.Contains("успешно")) { var login = text.Split(':')[0]; var password = text.Split(':')[1]; var resultAddingUser = db.AddUser(new Authorization { Login = login, Password = password, UserId = userId }); await messageManager.SendMessageAsync(answer, userId, sheduleKeyboard); return; } await messageManager.SendMessageAsync(answer, userId); } } catch (Exception ex) { await messageManager.SendMessageAsync("Упс! Что-то пошло не так 🤕\n" + "Мы найдем и исправим эту ошибку 🕵 \n" + ex.Message, userId); } }; }