/// <summary>
        /// Creates the error result.
        /// </summary>
        /// <param name="message">The message.</param>
        /// <returns></returns>
        public static UserAuthenticationResult CreateErrorResult(string message)
        {
            if (string.IsNullOrWhiteSpace(message))
            {
                message = "Invalid credentials.";
            }

            var result = new UserAuthenticationResult()
            {
                User         = null,
                Roles        = null,
                IsValid      = false,
                ErrorMessage = message
            };

            return(result);
        }
        /// <summary>
        /// Creates the authorized result.
        /// </summary>
        /// <param name="user">The user.</param>
        /// <param name="roles">The roles.</param>
        /// <returns></returns>
        /// <exception cref="System.ArgumentException">
        /// Object cannot be null;user
        /// or
        /// Object cannot be null;roles
        /// </exception>
        public static UserAuthenticationResult CreateAuthorizedResult(IUser user, IRole[] roles)
        {
            if (user == null)
            {
                throw new ArgumentException("Object cannot be null", "user");
            }
            if (roles == null)
            {
                throw new ArgumentException("Object cannot be null", "roles");
            }

            var result = new UserAuthenticationResult()
            {
                User         = user,
                Roles        = roles,
                IsValid      = true,
                ErrorMessage = null
            };

            return(result);
        }