Exemple #1
0
        public virtual async Task LoadApplications(ApplicationManagerClient appMgr, string entApiKey)
        {
            var apps = await appMgr.ListApplications(entApiKey);

            State.Applications = apps.Model.Where(app => app.Container == "lcu-data-apps").ToList();

            State.ActiveApp = State.Applications.FirstOrDefault(app => app.ID == State.ActiveApp?.ID);
        }
Exemple #2
0
        public virtual async Task <LCUAppsState> LoadApps()
        {
            var apps = await appMgr.ListApplications(details.EnterpriseAPIKey);

            state.Apps = apps.Model;

            return(state);
        }
Exemple #3
0
        public virtual async Task <ConfigManagerState> LoadApplications()
        {
            var apps = await appMgr.ListApplications(details.EnterpriseAPIKey);

            state.Applications = apps.Model.Where(app => app.Container == "lcu-data-apps").ToList();

            state.ActiveApp = state.Applications.FirstOrDefault(app => app.ID == state.ActiveApp?.ID);

            return(state);
        }
Exemple #4
0
        public virtual async Task Ensure(ApplicationManagerClient appMgr, IdentityManagerClient idMgr, string entApiKey, string username)
        {
            // check in to see if user has free trial/paid subscriber rights
            var authResp = await idMgr.HasAccess(entApiKey, username, new List <string>() { "LCU.NapkinIDE.AllAccess" });

            State.IsActiveSubscriber = authResp.Status;

            var activitiesResp = await appMgr.LoadIDEActivities(entApiKey);

            if (State.IsActiveSubscriber)
            {
                var appsResp = await appMgr.ListApplications(entApiKey);

                State.InfrastructureConfigured = activitiesResp.Status && !activitiesResp.Model.IsNullOrEmpty() && appsResp.Status && !appsResp.Model.IsNullOrEmpty();
            }
            else
            {
                State.InfrastructureConfigured = true;
            }

            if (activitiesResp.Status)
            {
                await SetupActivities(activitiesResp.Model, entApiKey);
            }

            await LoadHeaderActions();

            await LoadSideBar(appMgr, entApiKey);

            if (State.IsActiveSubscriber)
            {
                var appsResp = await appMgr.ListApplications(entApiKey);

                State.InfrastructureConfigured = activitiesResp.Status && !activitiesResp.Model.IsNullOrEmpty() && appsResp.Status && !appsResp.Model.IsNullOrEmpty();
            }
            else
            {
            }
        }
Exemple #5
0
        public virtual async Task <LCUIDEState> Ensure()
        {
            var activitiesResp = await appMgr.LoadIDEActivities(details.EnterpriseAPIKey);

            state.Activities = activitiesResp.Model;

            var appsResp = await appMgr.ListApplications(details.EnterpriseAPIKey);

            state.InfrastructureConfigured = activitiesResp.Status && !activitiesResp.Model.IsNullOrEmpty() && appsResp.Status && !appsResp.Model.IsNullOrEmpty();

            state.RootActivities = new List <IDEActivity>();

            state.RootActivities.Add(new IDEActivity()
            {
                Icon   = "settings",
                Lookup = Environment.GetEnvironmentVariable("FORGE-SETTINGS-PATH") ?? "/forge-settings",
                Title  = "Settings"
            });

            return(await LoadSideBar());
        }
Exemple #6
0
        public virtual async Task LoadApplications(ApplicationManagerClient appMgr, string entLookup)
        {
            log.LogInformation($"Loading Applications for {entLookup}");

            var appsResult = await appMgr.ListApplications(entLookup);

            //  TODO:  Renable where filter for filtering support.  Each app type will have a different container
            var apps = appsResult.Model;//.Where(app => app.Container == "lcu-data-apps").ToList();

            State.Applications = apps.GroupBy(app =>
            {
                var pathParts = app.PathRegex.Replace("*", "").Split('/');

                var pathRoot = pathParts.FirstOrDefault(pathPart => !pathPart.IsNullOrEmpty() || pathParts.All(pp => pp.IsNullOrEmpty()));

                return($"/{pathRoot}");
            }).Select(appGroup =>
            {
                return(new DataAppDetails()
                {
                    AppIDs = appGroup.ToDictionary(ag => ag.ID, ag => ag.PathRegex.Replace("*", "")),
                    AppStati = calculateAppStati(appGroup.Key, appGroup.ToList()).Result,
                    DisplayName = appGroup.Key,
                    PathGroup = appGroup.Key
                });
            }).ToList();

            log.LogInformation($"Preparing system applications");

            var apiAppDets = State.Applications.FirstOrDefault(app => app.PathGroup == "/api") ?? new DataAppDetails()
            {
                AppIDs    = new Dictionary <Guid, string>(),
                PathGroup = "/api",
                AppStati  = new List <DataDAFAppStatus>()
            };

            apiAppDets.DisplayName = "APIs";

            apiAppDets.Description = "Manage API proxies to control usage and security.";

            var lcuAppDets = State.Applications.FirstOrDefault(app => app.PathGroup == "/_lcu") ?? new DataAppDetails()
            {
                AppIDs    = new Dictionary <Guid, string>(),
                PathGroup = "/_lcu",
                AppStati  = new List <DataDAFAppStatus>()
            };

            lcuAppDets.DisplayName = "Low Code Units";

            lcuAppDets.Description = "Manage reusable web components for your IDE and applications.";

            var homeAppDets = State.Applications.FirstOrDefault(app => app.PathGroup == "/") ?? new DataAppDetails()
            {
                AppIDs    = new Dictionary <Guid, string>(),
                PathGroup = "/",
                AppStati  = new List <DataDAFAppStatus>()
            };

            homeAppDets.DisplayName = "Home Pages";

            homeAppDets.Description = "Manage home page applications, redirects and more.";

            State.FixedApplications = new List <DataAppDetails>()
            {
                apiAppDets, lcuAppDets, homeAppDets
            };

            State.Applications = State.Applications.Where(app => !State.FixedApplications.Contains(app)).ToList();

            await SetActiveApp(appMgr, entLookup,
                               AllApplications.FirstOrDefault(app => app.PathGroup == State.ActiveAppPathGroup)?.PathGroup);
        }