void Listener_OnUserUpdated(FizzUserUpdateEventData eventData) { if (OnUserUpdated != null) { FizzUserModel user = Users[eventData.UserId]; if (user != null) { user.Update(eventData); OnUserUpdated.Invoke(user); } } }
private void GetUser(GetUserRequest request) { Client.Chat.Users.GetUser(request.UserId, (userMeta, ex) => { FizzUserModel user = null; if (ex == null) { user = new FizzUserModel(userMeta, Client); Users[user.Id] = user; } FizzUtils.DoCallback(user, ex, request.Callback); requestQueue.Dequeue(); if (requestQueue.Count > 0) { GetUser(requestQueue.Peek()); } }); }
private void FetchProfilesAndSubscibe() { if (Client.State == FizzClientState.Closed) { FizzLogger.W("FizzClient should be opened before subscribing user."); return; } foreach (KeyValuePair <string, FizzUserModel> entry in Users) { GetUser(entry.Key, (user, ex) => { if (ex == null) { FizzUserModel existingUser = entry.Value; existingUser.Apply(user); if (existingUser.IsSubscribed) { existingUser.Subscribe(null); } } }); } }
void OnUserUpdate(FizzUserModel user) { SetPresenceStatus(user.Id, user.Online); }