public CallbackController(IVkApi _vkApi, IConfiguration configuration) { this.configuration = configuration; vkApi = _vkApi; tasker = new Tasker(vkApi); Tasker.allUsers = Tasker.OpenAll(); //Открывем файл с данными пользователей. }
/// <summary> /// Обработчик входящих сообщений. /// </summary> private void MsgReceiver(Message msg) { string mess = msg.Text.ToLower(); //Переводим всё в нижний регистр. mess = mess.Replace(".", "").Replace(",", "").Replace(")", "").Replace("(", "").Replace("?", ""); //Убираем лишние символы. //Отменяем выполнение операции, если в процессе её выполнения пользователь написал слово "отмена". if (mess == "отмена" && Tasker.allUsers.Users[msg.FromId.Value].IsTaskChangingInProgress == true) { Tasker.allUsers.Users[msg.FromId.Value].IsTaskChangingInProgress = false; //Удаляем последнюю запись, если уже был добавлен текст, иначе просто выходим из операции. if (Tasker.TaskProcces == Tasker.AddTaskDate) { Tasker.allUsers.Users[msg.FromId.Value].Tasks.RemoveAt(Tasker.allUsers.Users[msg.FromId.Value].Tasks.Count - 1); } Tasker.SaveAll(); VKSendMsg(msg.PeerId.Value, MsgTexts.Cancel); return; } //Если выполняется какая-либо операция, то продолжаем её выполнять. if (Tasker.allUsers.Users[msg.FromId.Value].IsTaskChangingInProgress == true) { Tasker.TaskProcces(msg); return; } //Выбираем нужное действие в зависимости от того, что написал пользователь. switch (mess) { case "напомни": { Tasker.StartTaskAdding(msg); break; } case "покажи": { Tasker.ShowTasks(msg); break; } case "очистить": { Tasker.ClearTasks(msg.FromId.Value); break; } case "пользователи": { if (Tasker.allUsers.Users.Count > 0) { string users = "Пользователи:\n"; foreach (var user in Tasker.allUsers.Users) { users += user.Value.VkId + "\n"; } VKSendMsg(msg.PeerId.Value, users); } else { VKSendMsg(msg.PeerId.Value, MsgTexts.NoUsers); } break; } case "id": //Для тестов. { VKSendMsg(msg.PeerId.Value, msg.FromId.Value.ToString()); break; } case "спасибо": { VKSendMsg(msg.PeerId.Value, MsgTexts.Thanks); break; } default: { string Answer; try { Answer = MsgTexts.Answers[mess]; } catch (System.Exception) { Answer = MsgTexts.DontUnderstand; } VKSendMsg(msg.PeerId.Value, Answer); break; } } }