public static Users GetUserOfAuthToken(IUsersRepository dbUsers, IRolesRepository dbRoles, bool allRoles, params Enumerations.Roles[] roles)
        {
            Users user = dbUsers.FindByAuthToken(GetAuthToken());

            if (user == null)
            {
                return(null);
            }

            if (roles == null || roles.Length == 0)
            {
                return(user);
            }

            List <Roles> currentUserRoles = dbRoles.FindByUserID(user.UserID).ToList();

            if (!allRoles)
            {
                foreach (var item in roles)
                {
                    if (currentUserRoles.Any(x => x.RoleID == Convert.ToInt32(item)))
                    {
                        return(user);
                    }
                }

                return(null);
            }

            foreach (var item in roles)
            {
                if (!currentUserRoles.Any(x => x.RoleID == Convert.ToInt32(item)))
                {
                    return(null);
                }
            }

            return(user);
        }