public static DAL.User UpdateUser(DAL.User user)
        {
            try
            {
                using (TransactionScope ts = new TransactionScope())
                {
                    using (BLL.UserManager um = new BLL.UserManager())
                    {
                        DAL.User oldUser = um.GetUserByID(user.UserID);
                        if (oldUser != null)
                        {
                            if (oldUser.UserName != user.UserName)
                                throw new Exceptions.UserException("Changing user name is not allowed.");
                            string[] roles = user.Role.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                            if (roles.Length > 0)
                                AddUserToRoles(user.UserName, roles);
                            MembershipUser mUser = WebSecurity.Membership.GetUser(user.UserName);
                            user.MembershipProviderKey = (Guid)mUser.ProviderUserKey;
                            user = um.UpdateUser(user);
                        }
                        else
                        {
                            throw new Exceptions.UserException("No user found to update.");
                        }
                    }
                    ts.Complete();
                    return user;
                }

            }
            catch (Exceptions.UserException userex)
            {
                throw userex;
            }
            catch (Exception)
            {
                throw new Exceptions.UserException("Updating user failed.");
            }
        }