/// <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);
         }
     }
 }
Beispiel #2
0
        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);
        }
Beispiel #3
0
 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);
     }
 }
Beispiel #4
0
 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);
     }
 }
Beispiel #5
0
        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);
        }
Beispiel #7
0
        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;
                }
            }
        }
Beispiel #12
0
 public ContactModControl(object contactList)
 {
     InitializeComponent();
     DataContext = new ContactControl();
 }