Пример #1
0
        public async Task UpdateScoresAsync(Activity activity, bool userWin)
        {
            using (StateClient stateClient = activity.GetStateClient())
            {
                IBotState chatbotState = stateClient.BotState;
                BotData   chatbotData  = await chatbotState.GetUserDataAsync(
                    activity.ChannelId, activity.From.Id);

                Queue <PlayScore> scoreQueue =
                    chatbotData.GetProperty <Queue <PlayScore> >(property: "scores");

                if (scoreQueue == null)
                {
                    scoreQueue = new Queue <PlayScore>();
                }

                if (scoreQueue.Count >= 10)
                {
                    scoreQueue.Dequeue();
                }

                scoreQueue.Enqueue(new PlayScore {
                    UserWin = userWin
                });

                chatbotData.SetProperty <Queue <PlayScore> >(property: "scores", data: scoreQueue);
                await chatbotState.SetUserDataAsync(activity.ChannelId, activity.From.Id, chatbotData);
            }
        }
Пример #2
0
        public async Task UpdateAsync(Activity activity, MeetingData inData)
        {
            using (StateClient stateClient = activity.GetStateClient())
            {
                IBotState chatbotState = stateClient.BotState;
                BotData   chatbotData  = await chatbotState.GetUserDataAsync(
                    activity.ChannelId, activity.From.Id);

                MeetingData meetingData =
                    chatbotData.GetProperty <MeetingData>(MeetingDataProperty);

                if (meetingData == null)
                {
                    meetingData = new MeetingData();
                }

                meetingData.UserChannelID = activity.From.Id;
                meetingData.UserDBID      = inData.UserDBID;
                meetingData.Dialog        = inData.Dialog;
                meetingData.Method        = inData.Method;

                chatbotData.SetProperty(MeetingDataProperty, data: meetingData);
                await chatbotState.SetUserDataAsync(activity.ChannelId, activity.From.Id, chatbotData);
            }
        }
Пример #3
0
        public async Task AddTieAsync(Activity activity)
        {
            using (StateClient stateClient = activity.GetStateClient())
            {
                IBotState chatbotState = stateClient.BotState;
                BotData   chatbotData  = await chatbotState.GetUserDataAsync(activity.ChannelId, activity.From.Id);

                int ties = chatbotData.GetProperty <int>(property: "ties");

                chatbotData.SetProperty <int>(property: "ties", data: ++ties);

                await chatbotState.SetUserDataAsync(activity.ChannelId, activity.From.Id, chatbotData);
            }
        }
Пример #4
0
 public static BotData SetUserData(this IBotState operations, string channelId, string userId, BotData botData)
 {
     return(operations.SetUserDataAsync(channelId, userId, botData).GetAwaiter().GetResult());
 }
 /// <summary>
 /// Set user data based on current activity.
 /// </summary>
 /// <returns></returns>
 private async Task SetuserDataAsync(BotData botdata)
 {
     await _botState.SetUserDataAsync(_activity.ChannelId, _activity.From.Id, botdata);
 }