コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
 /// <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);
     }
 }
コード例 #4
0
 /// <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;
     }
 }
コード例 #5
0
        /// <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);
        }