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)); } }
public static ChatUserModel GetUser(this ChatSkillAttributionEventModel skillAttributionEvent) { return(new ChatUserModel() { userId = skillAttributionEvent.user_id, userName = skillAttributionEvent.user_name, userRoles = skillAttributionEvent.user_roles }); }