private async void Client_OnSkillAttributionOccurred(object sender, ChatSkillAttributionEventModel skillAttribution)
        {
            if (!ChannelSession.Constellation.AvailableSkills.ContainsKey(skillAttribution.skill.skill_id))
            {
                ChatUserModel chatUser = skillAttribution.GetUser();
                UserViewModel user     = await ChannelSession.ActiveUsers.AddOrUpdateUser(chatUser);

                if (user == null)
                {
                    user = new UserViewModel(chatUser);
                }
                else
                {
                    await user.RefreshDetails();
                }
                user.UpdateLastActivity();

                string message = null;
                if (skillAttribution.message != null && skillAttribution.message.message != null && skillAttribution.message.message.Length > 0)
                {
                    ChatMessageViewModel messageModel = new ChatMessageViewModel(skillAttribution.message, user);
                    message = messageModel.Message;
                }

                GlobalEvents.SkillUseOccurred(new SkillUsageModel(user, skillAttribution.skill, message));
            }
        }
Esempio n. 2
0
 public static ChatUserModel GetUser(this ChatSkillAttributionEventModel skillAttributionEvent)
 {
     return(new ChatUserModel()
     {
         userId = skillAttributionEvent.user_id, userName = skillAttributionEvent.user_name, userRoles = skillAttributionEvent.user_roles
     });
 }