private void btnAddNewPOC_Click(object sender, RoutedEventArgs e)
        {
            if (lstContactList.SelectedIndex == -1)
            {

                if (txtContactName.Text.Trim() == "")
                {
                    MessageBox.Show("Please Enter Name of Point of Contact");
                    return;
                }
                if (txtContactPosition.Text.Trim() == "")
                {
                    MessageBox.Show("Please Enter Position of Point of Contact");
                    return;
                }
                if (txtContactTel.Text.Trim() == "")
                {
                    MessageBox.Show("Please Enter Phone of Point of Contact");
                    return;
                }

                try
                {
                    ServiceContactHelper client = new ServiceContactHelper();
                    if (event_ != null)
                    {
                        client.AddPointOfContact(user, event_.EventID, ((Service)lstServiceList.SelectedItem).ServiceID,
                            txtContactName.Text.Trim(), txtContactPosition.Text.Trim(), txtContactTel.Text.Trim(), txtContactEmail.Text.Trim());
                    }
                    else
                    {
                        client.AddPointOfContact(user, -1, ((Service)lstServiceList.SelectedItem).ServiceID,
                            txtContactName.Text.Trim(), txtContactPosition.Text.Trim(), txtContactTel.Text.Trim(), txtContactEmail.Text.Trim());
                    }
                    MessageBox.Show("Operation Success");
                    client.Close();

                    loadPointOfContact(((Service)lstServiceList.SelectedItem).ServiceID);
                    Select_PointOfContact(txtContactName.Text.Trim(), txtContactPosition.Text.Trim(), txtContactTel.Text.Trim(), txtContactEmail.Text.Trim());
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                //check and save

            }
            else
            {
                PointOfContact poc = ((PointOfContact)lstContactList.SelectedItem);
                //edit
                UpdatePointOfContact(poc);
                loadPointOfContact(((Service)lstServiceList.SelectedItem).ServiceID);
            }
        }
 private void UpdateService(Service service)
 {
     try
     {
         var textRange = new TextRange(txtNote.Document.ContentStart, txtNote.Document.ContentEnd);
         ServiceContactHelper client = new ServiceContactHelper();
         if (event_ == null)
         {
             client.EditService(service.ServiceID, user, -1, txtAddress.Text.Trim(), txtName.Text.Trim(), txtWebsite.Text.Trim(), textRange.Text.Trim());
         }
         else
         {
             client.EditService(service.ServiceID, user, event_.EventID, txtAddress.Text.Trim(), txtName.Text.Trim(), txtWebsite.Text.Trim(), textRange.Text.Trim());
         }
         client.Close();
         MessageBox.Show("Operation Success");
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
        private void UpdatePointOfContact(PointOfContact poc)
        {
            try
            {
                ServiceContactHelper client = new ServiceContactHelper();

                if (event_ != null)
                {
                    client.EditPointOfContact(user, event_.EventID, poc.PointOfContactID, txtContactName.Text, txtContactPosition.Text, txtContactTel.Text, txtContactEmail.Text);
                }
                else
                {
                    client.EditPointOfContact(user, -1, poc.PointOfContactID, txtContactName.Text, txtContactPosition.Text, txtContactTel.Text, txtContactEmail.Text);
                }
                client.Close();
                MessageBox.Show("Operation Success");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        private void SaveService()
        {
            try
            {
                var textRange = new TextRange(txtNote.Document.ContentStart, txtNote.Document.ContentEnd);
                ServiceContactHelper client = new ServiceContactHelper();
                if (event_ != null)
                    client.AddService(user, event_.EventID, txtAddress.Text.Trim(), txtName.Text.Trim(), txtWebsite.Text.Trim(), textRange.Text.Trim());
                else
                    client.AddService(user, -1, txtAddress.Text.Trim(), txtName.Text.Trim(), txtWebsite.Text.Trim(), textRange.Text.Trim());

                client.Close();
                MessageBox.Show("Operation Success");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        private void loadServices()
        {
            try
            {
                ServiceContactHelper client = new ServiceContactHelper();
                List<Service> serviceList;

                if (txtsearch.Foreground != Brushes.Black)
                {
                    serviceList = client.ViewService(null).ToList<Service>();
                }
                else
                {
                    serviceList = client.ViewService(txtsearch.Text.Trim()).ToList<Service>();
                }

                client.Close();
                lstServiceList.ItemsSource = serviceList
                                                 .OrderBy(x => x.Name)
                                                 .ThenBy(x => x.Notes)
                                                 .ToList<Service>();

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        private void loadPointOfContact(int ServiceID)
        {
            try
            {
                ServiceContactHelper client = new ServiceContactHelper();
                List<PointOfContact> POCList = client.ViewPointOfContact(ServiceID).ToList<PointOfContact>();

                client.Close();

                lstContactList.ItemsSource = POCList
                                                 .OrderBy(x => x.Name)
                                                 .ThenBy(x => x.Position)
                                                 .ToList<PointOfContact>();

                if (lstContactList.Items.Count != 0)
                    lstContactList.SelectedIndex = 0;

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        private void loadReview(int ServiceID)
        {
            try
            {
                ServiceContactHelper client = new ServiceContactHelper();
                List<Review> reviewList = client.ViewReview(ServiceID).ToList<Review>();

                client.Close();

                lstReviewList.ItemsSource = reviewList
                                                .OrderBy(x => x.ReviewDate)
                                                 .ThenBy(x => x.UserName)
                                                 .ToList<Review>();
                lstReviewList_SelectionChanged(null, null);

                Service service = ((Service)lstServiceList.SelectedItem);
                for (int i = 0; i < lstReviewList.Items.Count; i++)
                {
                    Review r = ((Review)lstReviewList.Items[i]);
                    if (r.ServiceID == service.ServiceID && user.UserID == r.UserID)
                    {
                        btnAddReview.Content = "Edit Own Review";
                        //lstReviewList.SelectedIndex = i;

                        return;
                    }
                }

                btnAddReview.Content = "Add New Review";

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
 private void DeleteService(Service service)
 {
     try
     {
         ServiceContactHelper client = new ServiceContactHelper();
         client.DeleteService(user, service.ServiceID);
         client.Close();
         MessageBox.Show("Operation Success");
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
        private void DeletePointOfContact(PointOfContact poc)
        {
            try
            {
                ServiceContactHelper client = new ServiceContactHelper();
                client.DeletePointOfContact(user, poc.PointOfContactID);
                client.Close();
                MessageBox.Show("Operation Success");

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        private void btnDeleteReview_Click(object sender, RoutedEventArgs e)
        {
            Service service = ((Service)lstServiceList.SelectedItem);
            Review r = (Review)lstReviewList.SelectedItem;
            try
            {
                if (r != null)
                {
                    ServiceContactHelper client = new ServiceContactHelper();
                    client.DeleteReview(user, r.UserID, r.ServiceID);

                    client.Close();

                    loadReview(service.ServiceID);
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        private void btnSave_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                var textRange = new TextRange(txtReviewDescription.Document.ContentStart, txtReviewDescription.Document.ContentEnd);
                ServiceContactHelper client = new ServiceContactHelper();
                if (event_ != null)
                {
                    client.Review(user, event_.EventID, service.ServiceID, rating.getRatingValue(), DateTime.Now, textRange.Text);
                }
                else
                {
                    client.Review(user, -1, service.ServiceID, rating.getRatingValue(), DateTime.Now, textRange.Text);
                }

                client.Close();

                MessageBox.Show("Operation Success");
                servicefrm.lstReviewList.SelectedIndex = -1;
                this.Close();

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        private void btnDelete_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                ServiceContactHelper client = new ServiceContactHelper();
                client.DeleteReview(user, review.UserID, service.ServiceID);
                client.Close();

                MessageBox.Show("Operation Success");
                this.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }