/// <summary> /// Название нового урока /// </summary> /// <param name="item"></param> /// <param name="response"></param> /// <returns></returns> public BotState?addTopic(VK.UserLongPoll.Update item, AIResponse response) { // запись в память бота названия урока BotSession b = state[item.PeerID]; b.Topic = response.Result.Source; // вывод сообщения api.Messages_SendMessage(Program.Cfg.CommunityID, item.PeerID, response.Result.Fulfillment.Speech); return(null); }
/// <summary> /// Отправление боту время начала создаваемого урока /// </summary> /// <param name="item"></param> /// <param name="response"></param> /// <returns></returns> public BotState?AddBeginTime(VK.UserLongPoll.Update item, AIResponse response) { // запись в память бота начала урока string str = response.Result.Parameters["addBeginTime"].ToString(); BotSession b = state[item.PeerID]; b.BeginLesson = DateTime.Parse(str); // вывод сообщения api.Messages_SendMessage(Program.Cfg.CommunityID, item.PeerID, response.Result.Fulfillment.Speech); return(null); }
/// <summary> /// Текущее состояние пользователя /// </summary> /// <param name="userId">Идентификатор пользователя</param> /// <returns></returns> private BotState GetState(int userId) { if (state.ContainsKey(userId)) { return(state[userId].State); } else { state[userId] = new BotSession(userId, BotState.None); return(state[userId].State); } }
/// <summary> /// Установить состояние пользователя /// </summary> /// <param name="userId">Идентификатор пользователя</param> /// <param name="newState">Новое состояние</param> private void SetState(int userId, BotState newState = BotState.None) { // Проверка на существование состояния if (!state.ContainsKey(userId)) { state[userId] = new BotSession(userId, newState); } else { // Установка нового состояния и обновление метки времени state[userId].State = newState; state[userId].TimeStamp = DateTime.Now; } }
/// <summary> /// Отправлению боту длительность урока /// </summary> /// <param name="item"></param> /// <param name="response"></param> /// <returns></returns> public BotState?addDuration(VK.UserLongPoll.Update item, AIResponse response) { // запись в память бота длительности урока string str = response.Result.Parameters["number"].ToString(); BotSession b = state[item.PeerID]; b.Durability = Convert.ToInt32(str); Storage.Lesson l = new Storage.Lesson() { ID = Guid.NewGuid(), Topic = b.Topic, BeginLesson = b.BeginLesson, EndLesson = b.BeginLesson.AddHours(b.Durability) }; // сохранение данных в базу db.Lessons.Add(l); db.SaveChanges(); // вывод сообщения api.Messages_SendMessage(Program.Cfg.CommunityID, item.PeerID, response.Result.Fulfillment.Speech); return(BotState.None); }