/// <summary>
        /// add a role to this user 
        /// </summary>
        /// <param name="user"></param>
        /// <param name="role"></param>
        public void AddRoleToUser(UserVO user, RoleEnum role)
        {
            bool result = false;

            if (!DoesUserHaveRole(user, role))
            {
                for (int i = 0; i < Roles.Count; i++)
                {
                    if (Roles[i].UserName.Equals(user.UserName))
                    {
                        IList<RoleEnum> userRoles = Roles[i].Roles;
                        userRoles.Add(role);
                        result = true;
                        break;
                    }
                }
            }

            SendNotification(ApplicationFacade.ADD_ROLE_RESULT, result);
        }
 public bool Equals(RoleEnum e)
 {
     if (e == null) return false;
     return (Ordinal == e.Ordinal && Value == e.Value);
 }
        // remove a role from the user
        public void RemoveRoleFromUser(UserVO user, RoleEnum role)
        {
            if (DoesUserHaveRole(user, role))
            {
                for (int i = 0; i < Roles.Count; i++)
                {
                    if (Roles[i].UserName.Equals(user.UserName))
                    {
                        IList<RoleEnum> userRoles = Roles[i].Roles;

                        foreach (RoleEnum curRole in userRoles)
                        {
                            if (curRole.Equals(role))
                            {
                                userRoles.Remove(role);
                                break;
                            }
                        }

                        break;
                    }
                }
            }
        }
        /// <summary>
        /// determine if the user has a given role
        /// </summary>
        /// <param name="user"></param>
        /// <param name="role"></param>
        /// <returns></returns>
        public bool DoesUserHaveRole(UserVO user, RoleEnum role)
        {
            bool hasRole = false;

            for (int i = 0; i < Roles.Count; i++)
            {
                if (Roles[i].UserName.Equals(user.UserName))
                {
                    IList<RoleEnum> userRoles = Roles[i].Roles;

                    foreach (RoleEnum curRole in userRoles)
                    {
                        if (curRole.Equals(role))
                        {
                            hasRole = true;
                            break;
                        }
                    }
                }
            }

            return hasRole;
        }