private void saveAssignment()
        {
            //Use threading to stop system from "Hanging" as it may take a long time to save
            //as a list of objects are sent over via SOAP

            System.Threading.Thread thread = new System.Threading.Thread(
                new System.Threading.ThreadStart(
                delegate()
                {
                    System.Windows.Threading.DispatcherOperation
                    dispatcherOp = this.Dispatcher.BeginInvoke(
                    System.Windows.Threading.DispatcherPriority.Normal,
                    new Action(delegate()
                    {
                        try
                        {
                            Mouse.OverrideCursor = Cursors.Wait;
                            MessageBox.Show("Please wait while we process your request...");

                            TasksHelper client = new TasksHelper();
                            try
                            {
                                Task[] taskList = this.lstAssignedTask.ItemsSource.Cast<Task>().ToArray();
                                //MessageBox.Show(taskList[0].TaskName);
                                client.AssignTask(user, event_.EventID, int.Parse(cboRole.SelectedValue.ToString()), taskList);
                            }
                            catch (Exception ex)
                            {
                                MessageBox.Show("An error have occured: " + ex.Message, "Error",
                                    MessageBoxButton.OK, MessageBoxImage.Error);
                            }
                            finally
                            {
                                client.Close();
                            }
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("An error have occured: " + ex.Message, "Error", MessageBoxButton.OK,
                                MessageBoxImage.Error);
                        }
                    }
                ));

                    dispatcherOp.Completed += new EventHandler(dispatcherOp_Completed);
                }
            ));

            thread.Start();
        }