public override async Task <AppListReply> ListApps(Empty request, ServerCallContext context) { AppListReply reply = new AppListReply(); var results = await _authDbContext.AuthApp .AsNoTracking() .Select(s => new { App = s, AssignedGroupCount = s.UserGroups.Count(), }) .ToListAsync(); foreach (var result in results) { HostingType hostingType; switch (result.App.HostingType) { case AuthApp.HostingTypeEnum.NON_WEB: hostingType = HostingType.NonWeb; break; case AuthApp.HostingTypeEnum.WEB_GATEKEEPER_PROXY: hostingType = HostingType.WebGatekeeperProxy; break; case AuthApp.HostingTypeEnum.WEB_GENERIC: hostingType = HostingType.WebGeneric; break; default: throw new NotImplementedException("Not implemented type: " + result.App.HostingType); } AppListEntry entry = new AppListEntry { Id = result.App.Id.ToString(), Name = result.App.Name, GroupsAssigned = result.AssignedGroupCount, HostingType = hostingType, }; reply.Apps.Add(entry); } return(reply); }
public override async Task <Shared.Apps.AppListReply> ListApps(Empty request, ServerCallContext context) { Guid userId = new Guid(_userManager.GetUserId(context.GetHttpContext().User)); IEnumerable <AuthApp> authApps = await _authDbContext.AuthApp .AsNoTracking() .Where(a => a.UserGroups.Any(u => u.Members.Any(m => m.Id == userId))) .ToListAsync(); AppListReply reply = new AppListReply(); foreach (AuthApp app in authApps) { reply.Apps.Add(new AppListEntry { Id = app.Id.ToString(), Name = app.Name, }); } return(reply); }