Example #1
0
        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);
        }
Example #2
0
        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);
        }