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();
        }
        protected void uiRadGridUsers_ItemCommand(object sender, Telerik.Web.UI.GridCommandEventArgs e)
        {
            if (e.CommandName == "EditUser")
            {
                MembershipUser ObjData = Membership.GetUser(e.CommandArgument.ToString());
                uiTextBoxUserName.Text = ObjData.UserName;
                uiTextBoxUserName.Enabled = false;
                if(!ObjData.IsLockedOut)
                    uiTextBoxPass.Text = ObjData.GetPassword();
                //uiTextBoxPass.Enabled = false;
               // uiCheckBoxIsLocked.Checked = ObjData.IsLockedOut;
                RequiredFieldValidator2.Enabled = false;
                RequiredFieldValidator6.Enabled = false;
                CompareValidator1.Enabled = false;
                uiTextBoxConfirm.Enabled = false;
                //uiLinkButtonEditPassword.Enabled = true;
                //uiTextBoxMail.Text = ObjData.Email;
                foreach (string role in Roles.GetRolesForUser(ObjData.UserName))
                {
                    foreach (ListItem item in uiCheckBoxListRoles.Items)
                    {
                        if (role == item.Text)
                        {
                            item.Selected = true;
                            break;
                        }
                    }
                }
                uiPanelEdit.Visible = true;
                uiPanelAll.Visible = false;

                UsersProfiles usPr = new UsersProfiles();
                usPr.getUserByGUID(new Guid(ObjData.ProviderUserKey.ToString()));
                txtFullName.Text = usPr.FullName;
                txtEmail.Text = usPr.Email;
                txtTelephone.Text = usPr.Telephone;
                if (!usPr.IsColumnNull(UsersProfiles.ColumnNames.Photo))
                    userImg.Src = usPr.Photo;
                if (!usPr.IsColumnNull(UsersProfiles.ColumnNames.GroupID))
                    DropDownListGroups.SelectedValue = usPr.GroupID.ToString();

                CurrentUser = ObjData;

            }
            else if (e.CommandName == "DeleteUser")
            {
                MembershipUser ObjData = Membership.GetUser(e.CommandArgument.ToString());
                if (ObjData != null)
                {
                    UsersProfiles usPr = new UsersProfiles();
                    usPr.getUserByGUID(new Guid(ObjData.ProviderUserKey.ToString()));
                    usPr.MarkAsDeleted();
                    usPr.Save();

                    Membership.DeleteUser(ObjData.UserName, true);
                }
                BindData();
            }
        }