/// <summary> /// Updates the contacts list /// </summary> private void LoadContactInfo() { ContactsPanel.Children.Clear(); foreach (var emp in _empcol.Employees) { if (emp == AuthdEmployee) { continue; } if (!emp.Visible) { } else { var ctrl = new ContactControl { EmployeeId = emp.PayrollId, ThreadUsers = { Content = emp.FullName }, }; ctrl.ThreadUsers.Click += ThreadUsers_Click; ctrl.AddToThreadButton.Click += AddToThreadButton_Click; ctrl.InitializeComponent(); ContactsPanel.Children.Add(ctrl); } } }
private async void contactBtn_Click(object sender, EventArgs e) { ContactControl control = (ContactControl)sender; ActiveContact = control.Contact; activeButtonChanger.ChangeButton(control.Button); var conversation = await _messageService.GetChatAsync(control.Contact.Login); chatbox1.SetChat(conversation); }
internal static void FillContacts(Panel pnl) { pnl.Children.Clear(); _yourContacts = Client.Request.Contacts(UserInfo.Id); foreach (Contact item in _yourContacts) { ContactControl contact = new ContactControl(); contact.NameTextBlock.Text = item.Name; contact.UsernameTextBlock.Text = $"@{item.Username}"; contact.Tag = item.Id; pnl.Children.Add(contact); } }
private void addContactBtn_Click(object sender, EventArgs e) { using (Form f = new AddContactForm(_userService)) { f.ShowDialog(); f.Activate(); } if (this.contactPanel.Controls.Count < _userService.User.Contacts.Count()) { var contactControl = new ContactControl(_userService.User.Contacts.Last()); contactControl.Dock = DockStyle.Top; contactControl.Click += contactBtn_Click; this.contactPanel.Controls.Add(contactControl); } }
internal static void SearchContacts(Panel pnl, string search) { List <Contact> searchResult = Client.Request.SearchContacts(search); foreach (Contact item in searchResult) { if (item.Username == UserInfo.Username) { continue; } ContactControl contact = new ContactControl(); contact.NameTextBlock.Text = item.Name; contact.UsernameTextBlock.Text = $"@{item.Username}"; contact.Tag = item.Id; pnl.Children.Add(contact); } }
/// <summary> /// event triggered when the user wants to go back to the list API calls /// </summary> /// <param name="sender">the contact control</param> /// <param name="e">e</param> private void ContactControlDoBack(object sender, EventArgs e) { if (_contactControl == null) return; _contactControl.DoBack -= ContactControlDoBack; _contactControl.Parent = null; _contactControl = null; //show the contact list control _contactListControl = new ContactListControl { Dock = DockStyle.Fill, Parent = splitContainer.Panel1, FrmMain = this, CredentialsDetails = _credentialsDetails }; _contactListControl.DoShowContactsInList += (ContactListControlDoShowContactsInList); }
public MainForm(IUserService userService, IMessageService messageService) : base() { _userService = userService; _messageService = messageService; _messageService.MessageReceived += onMessageReceived; _messageService.Initialize(); this.InitializeComponent(); this.chatbox1.SendBtnClicked += onSendBtnClicked; activeButtonChanger = new ActiveButtonChanger(_normalBtnContact, _activeBtnContact); foreach (var contact in _userService.User.Contacts) { var x = new ContactControl(contact); x.Dock = DockStyle.Top; x.Click += contactBtn_Click; this.contactPanel.Controls.Add(x); } }
//----------------------------PRIMARY CONTACT--------------------------------- private void NavigateToContactPage() { string name = newCustomer.PrimaryContact.Name ?? ""; string email = newCustomer.PrimaryContact.Email ?? ""; string phone = newCustomer.PrimaryContact.Phone ?? ""; string phoneExt = newCustomer.PrimaryContact.PhoneExt ?? ""; string fax = newCustomer.PrimaryContact.Fax ?? ""; string faxExt = newCustomer.PrimaryContact.FaxExt ?? ""; string cell = newCustomer.PrimaryContact.MobilePhone ?? ""; string title = newCustomer.PrimaryContact.Title ?? ""; var contactControl = new ContactControl { Dock = DockStyle.Fill, FullName = name, Email = email, Phone = phone, PhoneExt = phoneExt, Fax = fax, FaxExt = faxExt, Cell = cell, Title = title }; contactControl.Done += (contact) => { newCustomer.PrimaryContact = contact; btnNext.Enabled = true; }; contactControl.EnterPressed += () => btnNext.PerformClick(); contactControl.Invalid += () => btnNext.Enabled = false; contactControl.SetStatus(Color.Red, "Please enter the primary contact."); mainPanel.Controls.Clear(); mainPanel.Controls.Add(contactControl); btnNext.Enabled = string.IsNullOrEmpty(newCustomer.PrimaryContact.Name) && string.IsNullOrEmpty(newCustomer.PrimaryContact.Phone) ? false : true; lblCurrent.Text = "Primary Contact"; }
/// <summary> /// event triggered when the user tries to view contacts in a contact list /// </summary> /// <param name="sender">the contact list control</param> /// <param name="e">e</param> private void ContactListControlDoShowContactsInList(object sender, EventArgs e) { if (_contactListControl == null) return; _contactListControl.DoShowContactsInList -= ContactListControlDoShowContactsInList; _contactListControl.Parent = null; _contactListControl = null; //show the contact API calls control _contactControl = new ContactControl(this, _credentialsDetails) {Dock = DockStyle.Fill, Parent = splitContainer.Panel1}; _contactControl.DoBack += (ContactControlDoBack); }
/// <summary> /// Reset all the data and give the user the opportunity to start over the guide /// </summary> /// <param name="sender">sender</param> /// <param name="e">e</param> private void RestartToolStripMenuItemClick(object sender, EventArgs e) { splitContainer.Visible = false; restartToolStripMenuItem.Enabled = false; getStartedToolStripMenuItem.Enabled = true; richTextBoxRequest.Text = string.Empty; richTextBoxResponse.Text = string.Empty; //clean up the loging control if (_login != null) { _login.DoLogin -= LoginDoLogin; _login.Parent = null; _login = null; } //clean up the contact list control if (_contactListControl != null) { _contactListControl.DoShowContactsInList -= ContactListControlDoShowContactsInList; _contactListControl.Parent = null; _contactListControl = null; } //clean up the contact list control if (_contactControl != null) { _contactControl.DoBack -= ContactControlDoBack; _contactControl.Parent = null; _contactControl = null; } }
/// <summary> /// Loads messages for a specified thread /// </summary> /// <param name="threadId"></param> /// <param name="firstLoad"></param> /// <param name="amountToLoad"></param> private void ProcessThreadId(int threadId, bool firstLoad = false, int amountToLoad = 100) { GC.Collect(); var who = CheckThreadUsers(threadId, false); var queryResults = null as ArrayList; try { if (firstLoad) { var query = SQLServer.SelectData("SELECT TOP " + amountToLoad.ToString() + " * from whldata.messenger_messages WHERE threadid like'" + threadId.ToString() + "' ORDER BY messageid desc") as ArrayList; if (query == null) { throw new NullReferenceException(); } query.Reverse(); queryResults = query; _lastMessageInThread = -1; MessageStack.Children.Clear(); } else { var query = SQLServer.SelectData("SELECT TOP " + amountToLoad.ToString() + " * from whldata.messenger_messages WHERE threadid like'" + threadId.ToString() + "' AND messageid > '" + _lastMessageInThread.ToString() + "' ORDER BY messageid desc") as ArrayList; if (query == null) { throw new NullReferenceException(); } query.Reverse(); queryResults = query; } } catch (NullReferenceException) { } try { if (!who.Contains(AuthdEmployee)) { firstLoad = false; _currentThread = -1; MessageStack.Children.Clear(); _lastMessageInThread = -1; who.Clear(); } else if (queryResults == null) { throw new Exception("SQL Query Failed"); } else if (queryResults.Count == 0) { return; } else { foreach (ArrayList result in queryResults) { var message = result[2].ToString().ToLower(); if (message.Contains(".jpg") || message.Contains(".jpeg") || message.Contains(".png")) { if (result[1].ToString() == AuthdEmployee.PayrollId.ToString()) { var msg = new UserPictureControl { ImageContainer = { Source = new BitmapImage(new Uri(message)) } }; msg.InitializeComponent(); msg.MouseUp += Msg_MouseUp; msg.TouchUp += Msg_TouchUp; MessageStack.Children.Add(msg); } else { var otherMsg = new OtherPictureControl { ImageContainer = { Source = new BitmapImage(new Uri(message)) }, SenderName = { Text = _empcol.FindEmployeeByID(int.Parse(result[1].ToString())).FullName } }; otherMsg.MouseUp += OtherMsg_MouseUp; otherMsg.TouchUp += OtherMsg_TouchUp; otherMsg.InitializeComponent(); MessageStack.Children.Add(otherMsg); } } else if (message.Contains("https://") || message.Contains("http://")) { if (result[1].ToString() == AuthdEmployee.PayrollId.ToString()) { var msg = new SelfMessage { FromMessageBox = { Text = "" } }; msg.FromMessageBox.Inlines.Clear(); var splitStrings = Regex.Split(result[2].ToString(), " "); foreach (var splits in splitStrings) { if (splits.Contains("http://") || splits.Contains("https://")) { var splitHyperlinks = Regex.Split(splits, " "); foreach (var hyperLinks in splitHyperlinks) { if (hyperLinks.Contains("http://") || hyperLinks.Contains("https://")) { var newHyperLink = new Hyperlink { NavigateUri = new Uri(hyperLinks), }; newHyperLink.Inlines.Add(hyperLinks); newHyperLink.RequestNavigate += NewHyperLink_RequestNavigate; msg.FromMessageBox.Inlines.Add(newHyperLink); msg.FromMessageBox.Inlines.Add(" "); } else { msg.FromMessageBox.Inlines.Add(splits + " "); } } } else { msg.FromMessageBox.Inlines.Add(splits + " "); } } msg.InitializeComponent(); MessageStack.Children.Add(msg); } else if (result[1].ToString() == "0") { var msg = new SystemNotiControl { SystemNoti = { Text = result[2].ToString() } }; msg.InitializeComponent(); MessageStack.Children.Add(msg); } else if (result[1].ToString() != AuthdEmployee.PayrollId.ToString()) { var msg = new OtherMessage { OtherMessageBox = { Text = "" } }; msg.OtherMessageBox.Inlines.Clear(); var splitStrings = Regex.Split(result[2].ToString(), " "); var lastString = splitStrings.Last(); foreach (var splits in splitStrings) { var isLast = splits == lastString; if (splits.Contains("http://") || splits.Contains("https://")) { var splitHyperlinks = Regex.Split(splits, " "); foreach (var hyperLinks in splitHyperlinks) { if (hyperLinks.Contains("http://") || hyperLinks.Contains("https://")) { var newHyperLink = new Hyperlink { NavigateUri = new Uri(hyperLinks) }; newHyperLink.Inlines.Add(hyperLinks); newHyperLink.RequestNavigate += NewHyperLink_RequestNavigate; if (isLast) { msg.OtherMessageBox.Inlines.Add(newHyperLink); } else { msg.OtherMessageBox.Inlines.Add(newHyperLink + " "); } } else { if (isLast) { msg.OtherMessageBox.Inlines.Add(splits); } else { msg.OtherMessageBox.Inlines.Add(splits + " "); } } } } else { if (isLast) { msg.OtherMessageBox.Inlines.Add(splits); } else { msg.OtherMessageBox.Inlines.Add(splits + " "); } } } msg.SenderName.Text = _empcol.FindEmployeeByID(int.Parse(result[1].ToString())).FullName; msg.InitializeComponent(); MessageStack.Children.Add(msg); } } else if (result[1].ToString() == AuthdEmployee.PayrollId.ToString()) { var msg = new SelfMessage { FromMessageBox = { Text = result[2].ToString() } }; msg.InitializeComponent(); MessageStack.Children.Add(msg); } else if (result[1].ToString() == "0") { var msg = new SystemNotiControl { SystemNoti = { Text = result[2].ToString() } }; msg.InitializeComponent(); MessageStack.Children.Add(msg); } else if (result[1].ToString() != AuthdEmployee.PayrollId.ToString()) { var msg = new OtherMessage { OtherMessageBox = { Text = result[2].ToString() }, SenderName = { Text = _empcol.FindEmployeeByID(Int32.Parse(result[1].ToString())).FullName } }; msg.InitializeComponent(); MessageStack.Children.Add(msg); if (firstLoad) { continue; } TextOnlyNotification[] notiText = { new TextOnlyNotification(result[2].ToString(), HandleNoti) }; Notification.CreateNotification("Messenger", notiText, 20); } } } } catch (Exception e) { if (e.Message != "Skip Foreach") { var msgbox = new WPFMsgBox { Body = { Text = e.Message }, DialogTitle = { Text = "Failed to load" } }; msgbox.ShowDialog(); } } finally { if (firstLoad) { MessageScrollviewer.ScrollToEnd(); //Only scrolls to end on first load } ThreadUserTextBlock.Text = ""; if (firstLoad) { CurrentThreadPanel.Children.Clear(); foreach (var result in who) { var ctrl = new ContactControl(result) { ThreadUsers = { Content = result.FullName } }; ctrl.AddToThreadButton.Click += RemoveFromThreadClick; ctrl.InitializeComponent(); CurrentThreadPanel.Children.Add(ctrl); } } if (who == null || who.Count == 0) { ThreadUserTextBlock.Text = ""; } else { foreach (var result in who) { ThreadUserTextBlock.Text += result.FullName + ", "; } char[] removecomma = { ',', ' ' }; ThreadUserTextBlock.Text = ThreadUserTextBlock.Text.TrimEnd(removecomma); } var lastMessage = SQLServer.MSSelectDataDictionary("SELECT TOP 1 messageid from whldata.messenger_messages WHERE threadid like'" + threadId.ToString() + "' ORDER BY messageid desc"); if (lastMessage.Count > 0) { try { _lastMessageInThread = Convert.ToInt32(lastMessage[0]["messageid"]); } catch (Exception) { _lastMessageInThread = -1; } } else { _lastMessageInThread = -1; } } }
public ContactModControl(object contactList) { InitializeComponent(); DataContext = new ContactControl(); }