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); }