internal static async Task <IEnumerable <Role> > QueryIdentityRolesAsync(Controllers.ControllerObject controllerObject, int identityId) { controllerObject.CheckArgument(nameof(controllerObject)); List <Role> result = new List <Role>(); using var identityXRoleCtrl = new Controllers.Persistence.Account.IdentityXRoleController(controllerObject); using var roleCtrl = new Controllers.Persistence.Account.RoleController(controllerObject); foreach (var item in identityXRoleCtrl.ExecuteQuery(e => e.IdentityId == identityId).ToList()) { var entity = await roleCtrl.ExecuteGetByIdAsync(item.RoleId).ConfigureAwait(false); if (entity != null) { var role = new Role(); role.CopyProperties(entity); result.Add(role); } } return(result); }