protected void uiButtonUpdate_Click(object sender, EventArgs e)
        {
            if (CurrentUser != null)
            {
                //CurrentUser.Email = uiTextBoxMail.Text;
                List<string> stringListToAdd = new List<string>();
                List<string> stringListToRemove = new List<string>();

                if (!CurrentUser.IsLockedOut)
                {
                    if (CurrentUser.GetPassword() != uiTextBoxPass.Text && !string.IsNullOrEmpty(uiTextBoxPass.Text))
                    {
                        CurrentUser.ChangePassword(CurrentUser.GetPassword(), uiTextBoxPass.Text);
                    }
                }

                foreach (ListItem item in uiCheckBoxListRoles.Items)
                {
                    if (item.Selected)
                    {
                        if (!Roles.IsUserInRole(CurrentUser.UserName, item.Text))
                        {
                            stringListToAdd.Add(item.Text);
                        }
                    }
                    else
                    {
                        if (Roles.IsUserInRole(CurrentUser.UserName, item.Text))
                        {
                            stringListToRemove.Add(item.Text);
                        }
                    }
                }

                string[] stringArrayToAdd = stringListToAdd.ToArray();
                string[] stringArrayToRemove = stringListToRemove.ToArray();
                if (stringArrayToAdd.Length > 0)
                    Roles.AddUserToRoles(CurrentUser.UserName, stringArrayToAdd);
                if (stringArrayToRemove.Length > 0)
                    Roles.RemoveUserFromRoles(CurrentUser.UserName, stringArrayToRemove);

                //
                UsersProfiles usPr = new UsersProfiles();
                usPr.getUserByGUID(new Guid(CurrentUser.ProviderUserKey.ToString()));

                usPr.FullName = txtFullName.Text;
                usPr.Email = txtEmail.Text;
                usPr.Telephone = txtTelephone.Text;
                usPr.GroupID = int.Parse(DropDownListGroups.SelectedValue);
                if (fileUploadPhoto.HasFile)
                {
                    Bitmap UpImg = (Bitmap)Bitmap.FromStream(fileUploadPhoto.PostedFile.InputStream);
                    string path = "/FileUploads/ProfilePics/" + DateTime.Now.ToString("ddMMyyyyhhmmss") + fileUploadPhoto.FileName;
                    UpImg.Save(MapPath(path), System.Drawing.Imaging.ImageFormat.Png);
                    usPr.Photo= path;
                }
                usPr.Save();
            }
            else
            {
                List<string> stringListToAdd = new List<string>();
                MembershipCreateStatus obj;
                MembershipUser objUser = Membership.CreateUser(uiTextBoxUserName.Text, uiTextBoxPass.Text, "*****@*****.**", null, null, true, out obj);
                bool success = true;
                switch (obj)
                {
                    case MembershipCreateStatus.DuplicateUserName:
                        uiLabelError.Text = "duplicate username";
                        uiLabelError.Visible = true;
                        success = false;
                        break;
                    case MembershipCreateStatus.InvalidPassword:
                        uiLabelError.Text = "invalid password. password must be (6) characters or more.";
                        uiLabelError.Visible = true;
                        success = false;
                        break;
                    case MembershipCreateStatus.ProviderError:
                    case MembershipCreateStatus.UserRejected:
                        uiLabelError.Text = "an error occurred. please try again.";
                        uiLabelError.Visible = true;
                        success = false;
                        break;
                    default:
                        break;
                }
                if (success)
                {
                    foreach (ListItem item in uiCheckBoxListRoles.Items)
                    {
                        if (item.Selected)
                        {
                            if (!Roles.IsUserInRole(objUser.UserName, item.Text))
                            {
                                stringListToAdd.Add(item.Text);
                            }
                        }
                    }
                    string[] stringArrayToAdd = stringListToAdd.ToArray();
                    if (stringArrayToAdd.Length > 0)
                        Roles.AddUserToRoles(objUser.UserName, stringArrayToAdd);

                    //

                    UsersProfiles usPr = new UsersProfiles();
                    usPr.AddNew();
                    usPr.UserID = new Guid(objUser.ProviderUserKey.ToString());
                    usPr.FullName = txtFullName.Text;
                    usPr.Email = txtEmail.Text;
                    usPr.Telephone = txtTelephone.Text;
                    usPr.GroupID = int.Parse(DropDownListGroups.SelectedValue);
                    if (fileUploadPhoto.HasFile)
                    {
                        Bitmap UpImg = (Bitmap)Bitmap.FromStream(fileUploadPhoto.PostedFile.InputStream);
                        string path = "/FileUploads/ProfilePics/" + DateTime.Now.ToString("ddMMyyyyhhmmss") + fileUploadPhoto.FileName;
                        UpImg.Save(MapPath(path), System.Drawing.Imaging.ImageFormat.Png);
                        usPr.Photo = path;
                    }
                    usPr.Save();
                }
            }
            uiPanelEdit.Visible = false;

            uiPanelAll.Visible = true;
            ClearFields();
            CurrentUser = null;
            BindData();
        }