public void ReceiveMessage(CommunitySession session, Message message) { try { if (message.Type == MessageType.CommunityMessage) { CommunityMessage message2 = message as CommunityMessage; SessionTabItem item = this.FindIMSession(session); Buddy sender = ComponentManager.GetBuddyListBuilder().FindOrCreateBuddy(message2.Uin, true); if ((sender != null) && (item != null)) { item.AddMsg(sender, message2.Time, message2.MessagePack); } } else if (message.Type == MessageType.InfoMessage) { InfoMessage message3 = message as InfoMessage; SessionTabItem item2 = this.FindIMSession(session); if (item2 != null) { item2.AddMsg(null, message3.Time, message3.MessagePack); } } } catch (Exception) { } }
public CommunityLoginWindow(CommunitySession session, ILogger <CommunityLoginWindow> logger) { this.DataContext = this; this.InitializeComponent(); this.session = session; this.Closed += this.OnClosed; this.logger = logger; }
public SessionTabItem FindIMSession(CommunitySession communitySession) { foreach (SessionTabItem item in this.sessionTabItems) { if (item.CommunitySession == communitySession) { return(item); } } return(null); }
private void CreateCommunitySessionWindow(uint communityID, object parameter) { List <InstanceAnswerPro.Core.Message> list = Util_Group.PopMessages(communityID); CommunitySession communitySession = this._communitySessionManager.GetCommunitySession(communityID, true); CommunitySessionWindow window = new CommunitySessionWindow(communitySession); foreach (InstanceAnswerPro.Core.Message message in list) { window.ReceiveMessage(communitySession, message); } Util_Buddy.BuddySessionParameter parameter2 = parameter as Util_Buddy.BuddySessionParameter; if (parameter2 != null) { window.Left = parameter2.WindowPosition.X; window.Top = parameter2.WindowPosition.Y; } window.Show(); window.Activate(); }
public static bool ActiveSessionWhenExist(CommunitySession communitySession) { for (int i = 0; i < CommunitySessionWindows.Count; i++) { SessionTabItem item = CommunitySessionWindows[i].FindIMSession(communitySession); if (item != null) { if (CommunitySessionWindows[i].WindowState == WindowState.Minimized) { CommunitySessionWindows[i].WindowState = WindowState.Normal; } CommunitySessionWindows[i].Show(); CommunitySessionWindows[i].Activate(); CommunitySessionWindows[i].CurrentSessionTabItem = item; return(true); } } return(false); }
public void OnMessagePushed(InstanceAnswerPro.Core.Message message) { if (message.Type == InstanceAnswerPro.Core.MessageType.InfoMessage) { InfoMessage infoMessage = (InfoMessage)message; if (!infoMessage.IsCommunityMsg) { ContactSession contactSession = this._contactSessionManager.GetContactSession(infoMessage.Uin, false); if (contactSession != null) { contactSession.OnMessageReceived(infoMessage); this._messageCenter.PopMessage(infoMessage); } } else { CommunitySession communitySession = this._communitySessionManager.GetCommunitySession(infoMessage.Uin, false); if (communitySession != null) { communitySession.OnMessageReceived(infoMessage); this._messageCenter.PopMessage(infoMessage); } } } else if (message.Type == InstanceAnswerPro.Core.MessageType.ContactMessage) { ContactMessage message3 = (ContactMessage)message; this._messageCenter.NotifyMessage(new UICommandMessage("AddRecentContact", InstanceAnswerPro.Core.MessageType.ContactMessage, message3.Uin)); } else if (message.Type == InstanceAnswerPro.Core.MessageType.CommunityMessage) { CommunityMessage message4 = (CommunityMessage)message; this._messageCenter.NotifyMessage(new UICommandMessage("AddRecentContact", InstanceAnswerPro.Core.MessageType.CommunityMessage, message4.CommunityID)); this.CalculateUnreadCommunityMessageCount(message4); } }
public static bool ActiveSessionWhenExist(CommunitySession communitySession) { for (int i = 0; i < CommunitySessionWindows.Count; i++) { SessionTabItem item = CommunitySessionWindows[i].FindIMSession(communitySession); if (item != null) { if (CommunitySessionWindows[i].WindowState == WindowState.Minimized) { CommunitySessionWindows[i].WindowState = WindowState.Normal; } CommunitySessionWindows[i].Show(); CommunitySessionWindows[i].Activate(); CommunitySessionWindows[i].CurrentSessionTabItem = item; return true; } } return false; }
public CommunitySessionWindow(CommunitySession communitySession) : this(new SessionTabItem(communitySession)) { }
public void ReceiveMessage(CommunitySession session, Message message) { try { if (message.Type == MessageType.CommunityMessage) { CommunityMessage message2 = message as CommunityMessage; SessionTabItem item = this.FindIMSession(session); Buddy sender = ComponentManager.GetBuddyListBuilder().FindOrCreateBuddy(message2.Uin, true); if ((sender != null) && (item != null)) { item.AddMsg(sender, message2.Time, message2.MessagePack); } } else if (message.Type == MessageType.InfoMessage) { InfoMessage message3 = message as InfoMessage; SessionTabItem item2 = this.FindIMSession(session); if (item2 != null) { item2.AddMsg(null, message3.Time, message3.MessagePack); } } } catch (Exception) { } }
public SessionTabItem FindIMSession(CommunitySession communitySession) { foreach (SessionTabItem item in this.sessionTabItems) { if (item.CommunitySession == communitySession) { return item; } } return null; }
public CommunitySessionWindow(CommunitySession communitySession) : this(new SessionTabItem(communitySession)) { }
/// <summary> /// Loads the bar for the given session. If the user is a member of several, either the last one is used, /// or a selection dialog is presented. /// </summary> /// <param name="session">The current session.</param> /// <param name="showCommunityId">Force this community to show.</param> public async void LoadSessionBar(CommunitySession session, string?showCommunityId = null) { if (this.firstBar && AppOptions.Current.Launch.BarFile != null) { this.LoadFromBarJson(AppOptions.Current.Launch.BarFile); return; } this.Logger.LogInformation($"Loading a bar ({session.Communities.Length} communities)"); UserBar?bar; string[] lastCommunities = AppOptions.Current.Communities.ToArray(); string? lastCommunityId = showCommunityId ?? AppOptions.Current.LastCommunity; if (string.IsNullOrWhiteSpace(lastCommunityId)) { lastCommunityId = null; } UserCommunity?community = null; UserBar? userBar = null; if (session.Communities.Length == 0) { MessageBox.Show("You are not part of a Morphic community yet.", "Morphic"); } else if (session.Communities.Length == 1) { community = session.Communities.First(); } else { // The user is a member of multiple communities. // See if any membership has changed bool changed = showCommunityId != null && session.Communities.Length != lastCommunities.Length || !session.Communities.Select(c => c.Id).OrderBy(id => id) .SequenceEqual(lastCommunities.OrderBy(id => id)); if (!changed && lastCommunityId != null) { community = session.Communities.FirstOrDefault(c => c.Id == lastCommunityId); } if (community == null) { this.Logger.LogInformation("Showing community picker"); // Load the bars while the picker is shown Dictionary <string, Task <UserBar> > bars = session.Communities.ToDictionary(c => c.Id, c => session.GetBar(c.Id)); // Show the picker CommunityPickerWindow picker = new CommunityPickerWindow(session.Communities); bool gotCommunity = picker.ShowDialog() == true; community = gotCommunity ? picker.SelectedCommunity : null; if (community != null) { userBar = await bars[community.Id]; } } } if (community != null) { userBar ??= await session.GetBar(community.Id); this.Logger.LogInformation($"Showing bar for community {community.Id} {community.Name}"); string barJson = this.GetUserBarJson(userBar); BarData?barData = this.LoadFromBarJson(userBar.Id, barJson); if (barData != null) { barData.CommunityId = community.Id; } } AppOptions.Current.Communities = session.Communities.Select(c => c.Id).ToArray(); AppOptions.Current.LastCommunity = community?.Id; }