void EditUser_Worker(object o)
        {
            var result = new UpdateUser_Return();

            if (o != null)
            {
                var info = (EditUserInfo)o;

                // Upload Profile Image
                if (info != null && profileImageChanged)
                {
                    if (profileImageFilename != null)
                    {
                        UploadProfileImage(info, profileImageFilename);
                    }
                    else
                    {
                        info.ImageUrl = "";
                    }
                }

                var userConfig = UserManagement.EditUser(info, "TrakHound Client Edit User");

                result.Info = userConfig;
            }

            Dispatcher.BeginInvoke(new Action <UpdateUser_Return>(EditUser_GUI), priority, new object[] { result });
        }
        void CreateUser_Worker(object o)
        {
            var result = new UpdateUser_Return();

            if (o != null)
            {
                var info = (CreateUserInfo)o;

                var userConfig = UserManagement.CreateUser(info, "TrakHound Client Create User");

                result.Info = userConfig;

                Dispatcher.BeginInvoke(new Action <UpdateUser_Return, CreateUserInfo>(CreateUser_GUI), priority, new object[] { result, info });
            }
        }
        void CreateUser_GUI(UpdateUser_Return result, CreateUserInfo createInfo)
        {
            if (result.Info != null)
            {
                if (mw != null)
                {
                    mw.Login(createInfo.Username, createInfo.Password);
                }
            }
            else
            {
                TrakHound_UI.MessageBox.Show("Error during User Creation! Try Again.");
            }

            Saving = false;
        }
        void EditUser_GUI(UpdateUser_Return result)
        {
            if (result.Info != null)
            {
                if (UserChanged != null)
                {
                    UserChanged(result.Info);
                }

                LoadUserConfiguration(result.Info);
            }
            else
            {
                TrakHound_UI.MessageBox.Show("Error during User Edit! Try Again.");
            }

            Saving = false;
        }
        void EditUser_Worker(object o)
        {
            var result = new UpdateUser_Return();

            if (o != null)
            {
                var info = (EditUserInfo)o;

                // Upload Profile Image
                if (info != null && profileImageChanged)
                {
                    if (profileImageFilename != null)
                    {
                        UploadProfileImage(info, profileImageFilename);
                    }
                    else
                    {
                        info.ImageUrl = "";
                    }
                }

                var userConfig = UserManagement.EditUser(info, "TrakHound Client Edit User");

                result.Info = userConfig;
            }

            Dispatcher.BeginInvoke(new Action<UpdateUser_Return>(EditUser_GUI), priority, new object[] { result });
        }
        void EditUser_GUI(UpdateUser_Return result)
        {
            if (result.Info != null)
            {
                if (UserChanged != null) UserChanged(result.Info);

                LoadUserConfiguration(result.Info);
            }
            else
            {
                TrakHound_UI.MessageBox.Show("Error during User Edit! Try Again.");
            }

            Saving = false;
        }
        void CreateUser_Worker(object o)
        {
            var result = new UpdateUser_Return();

            if (o != null)
            {
                var info = (CreateUserInfo)o;

                var userConfig = UserManagement.CreateUser(info, "TrakHound Client Create User");

                result.Info = userConfig;

                Dispatcher.BeginInvoke(new Action<UpdateUser_Return, CreateUserInfo>(CreateUser_GUI), priority, new object[] { result, info });
            }
        }
        void CreateUser_GUI(UpdateUser_Return result, CreateUserInfo createInfo)
        {
            if (result.Info != null)
            {
                if (mw != null) mw.Login(createInfo.Username, createInfo.Password);
            }
            else
            {
                TrakHound_UI.MessageBox.Show("Error during User Creation! Try Again.");
            }

            Saving = false;
        }