Beispiel #1
0
        public virtual async Task <Status> RemoveChildEnterprise(IApplicationsIoTService appIoTArch,
                                                                 IEnterprisesManagementService entMgr, IIdentityAccessService idMgr,
                                                                 string childEntLookup, string parentEntLookup)
        {
            var childEnt = State.EnterpriseConfig.ChildEnterprises.FirstOrDefault(ent =>
                                                                                  ent.Lookup == childEntLookup
                                                                                  );
            var devices = await appIoTArch.ListEnrolledDevices(childEntLookup);

            //Remove devices

            await devices.Model.Items.Each(async d => {
                await revokeDeviceEnrollment(appIoTArch, childEntLookup, d.DeviceID);
            }, parallel : true);


            //If its the active ent set active to null
            if (State.ActiveEnterpriseConfig.ActiveEnterprise != null && State.ActiveEnterpriseConfig?.ActiveEnterprise.Lookup == childEntLookup)
            {
                State.ActiveEnterpriseConfig.ActiveEnterprise = null;
            }

            var revokePassportRequest = await idMgr.RevokePassport(parentEntLookup, childEnt.Name);

            var revokeAccessCardRequest = await idMgr.RevokeAccessCard(new Host.TempRefit.RevokeAccessCardRequest()
            {
                AccessConfiguration = "LCU",
                Username            = childEnt.Name
            }, childEntLookup);

            if (revokeAccessCardRequest.Status.Code == 1)
            {
                log.LogError($"Unable to revoke access cards: {revokeAccessCardRequest.Status.Message}");
            }

            var revokeLicenceAccess = await idMgr.RevokeLicense(parentEntLookup, childEnt.Name, "iot");

            if (revokeLicenceAccess.Status.Code == 1)
            {
                log.LogError($"Unable to revoke license access: {revokeLicenceAccess.Status.Message}");
            }

            //TODO removing the API Management keys

            var cancelUserSubscription = await entMgr.CancelSubscriptionByUser(childEnt.Name, parentEntLookup, "iot");

            if (cancelUserSubscription.Status.Code == 1)
            {
                log.LogError($"Unable to cancel subscription: {cancelUserSubscription.Status.Message}");
            }

            var deleteRequest = await entMgr.DeleteEnterpriseByLookup(childEntLookup, new Host.TempRefit.DeleteEnterpriseByLookupRequest()
            {
                Password = "******"
            });

            await LoadChildEnterprises(entMgr, parentEntLookup, appIoTArch, idMgr);

            return(Status.Success);
        }
Beispiel #2
0
        public virtual async Task Refresh(IApplicationsIoTService appIoTArch, IEnterprisesManagementService entMgr,
                                          IIdentityAccessService idMgr, string parentEntLookup)
        {
            await LoadChildEnterprises(entMgr, parentEntLookup, appIoTArch, idMgr);

            await LoadActiveEnterpriseDetails(appIoTArch, State.ActiveEnterpriseConfig.Page, State.ActiveEnterpriseConfig.PageSize);

            State.Loading = false;
        }
        public RevokeDeviceEnrollment(IApplicationsIoTService appIoTArch, IEnterprisesManagementService entMgr,
                                      IIdentityAccessService idMgr, ILogger <RevokeDeviceEnrollment> log)
        {
            this.appIoTArch = appIoTArch;

            this.entMgr = entMgr;

            this.idMgr = idMgr;

            this.log = log;
        }
        public UpdateEnterprisesSync(IEnterprisesManagementService entMgr,
                                     IApplicationsIoTService appIoTArch, IIdentityAccessService idMgr, ILogger <UpdateEnterprisesSync> log)
        {
            this.appIoTArch = appIoTArch;

            this.entMgr = entMgr;

            this.idMgr = idMgr;

            this.log = log;
        }
Beispiel #5
0
        public RemoveChildEnterprise(IApplicationsIoTService appIoTArch,
                                     IEnterprisesManagementService entMgr, IIdentityAccessService idMgr, ILogger <RemoveChildEnterprise> log)
        {
            this.appIoTArch = appIoTArch;

            this.entMgr = entMgr;

            this.idMgr = idMgr;

            this.log = log;
        }
Beispiel #6
0
        public virtual async Task LoadChildEnterprises(IEnterprisesManagementService entMgr, string parentEntLookup,
                                                       IApplicationsIoTService appIoTArch, IIdentityAccessService idMgr)
        {
            var childEntsResp = await entMgr.ListChildEnterprises(parentEntLookup);

            State.EnterpriseConfig.TotalChildEnterprisesCount = childEntsResp.Model?.Count;

            var pagedChildEnts = childEntsResp.Model?.Page(State.EnterpriseConfig.Page, State.EnterpriseConfig.PageSize);

            var iotChildEnts = new List <IoTEnsembleChildEnterprise>();

            await pagedChildEnts.Items.Each(async childEnt =>
            {
                var devicesResp = await appIoTArch.ListEnrolledDevices(childEnt.Lookup);

                var licenses = await idMgr.ListLicensesByUsername(parentEntLookup, childEnt.Name, new List <string>()
                {
                    "iot"
                });

                DateTime?StartDate = null;

                foreach (License token in licenses.Model)
                {
                    if (token.AccessStartDate != null)
                    {
                        StartDate = token.AccessStartDate.UtcDateTime;
                    }
                }

                var iotChildEnt = new IoTEnsembleChildEnterprise()
                {
                    Name        = childEnt.Name,
                    Lookup      = childEnt.Lookup,
                    DeviceCount = devicesResp.Model?.TotalRecords ?? 0,
                    SignUpDate  = StartDate
                };

                iotChildEnt.Devices = devicesResp.Model?.Items?.Select(device =>
                {
                    var devInfo = device.JSONConvert <IoTEnsembleDeviceInfo>();

                    devInfo.DeviceName = devInfo.DeviceID.Replace($"{childEnt.Lookup}-", String.Empty);

                    return(devInfo);
                }).ToList();

                iotChildEnts.Add(iotChildEnt);
            });

            State.EnterpriseConfig.ChildEnterprises = iotChildEnts;
        }
        public GenerateReferenceData(IEnterprisesManagementService entMgr, IIdentityAccessService idMgr, ILogger <GenerateReferenceData> log, IEnterprisesHostingManagerService entHostMgr)
        {
            this.entMgr = entMgr;

            this.entHostMgr = entHostMgr;

            this.idMgr = idMgr;

            this.log = log;

            parentEntLookup = Environment.GetEnvironmentVariable("LCU-ENTERPRISE-LOOKUP");

            bypassGenerateRefData = Environment.GetEnvironmentVariable("LCU-BYPASS-GENERATE-REFERENCE-DATA").As <bool>();
        }
Beispiel #8
0
        public Refresh(IApplicationsIoTService appIoTArch, IEnterprisesAPIManagementService entApiArch, IEnterprisesAsCodeService eacSvc, IEnterprisesManagementService entMgr, IEnterprisesHostingManagerService entHostMgr,
                       IIdentityAccessService idMgr, ILogger <Refresh> log, ISecurityDataTokenService secMgr)
        {
            this.appIoTArch = appIoTArch;

            this.entApiArch = entApiArch;

            this.eacSvc = eacSvc;

            this.entMgr = entMgr;

            this.entHostMgr = entHostMgr;

            this.idMgr = idMgr;

            this.log = log;

            this.secMgr = secMgr;
        }
Beispiel #9
0
        public virtual async Task UpdateEnterprisesSync(IEnterprisesManagementService entMgr,
                                                        IApplicationsIoTService appIoTArch, IIdentityAccessService idMgr, string parentEntLookup, int page, int pageSize)
        {
            if (State.EnterpriseConfig != null)
            {
                State.EnterpriseConfig.Page = page;

                State.EnterpriseConfig.PageSize = pageSize;

                await LoadChildEnterprises(entMgr, parentEntLookup, appIoTArch, idMgr);

                if (State.ActiveEnterpriseConfig != null)
                {
                    await LoadActiveEnterpriseDetails(appIoTArch, State.ActiveEnterpriseConfig.Page, State.ActiveEnterpriseConfig.PageSize);
                }
            }

            else
            {
                throw new Exception("Unable to load the enterprise config, please try again or contact support.");
            }
        }
Beispiel #10
0
        public virtual async Task <Status> RevokeDeviceEnrollment(IApplicationsIoTService appIoTArch, IEnterprisesManagementService entMgr,
                                                                  IIdentityAccessService idMgr, string parentEntLookup, string deviceId)
        {
            var revoked = await revokeDeviceEnrollment(appIoTArch, State.ActiveEnterpriseConfig.ActiveEnterprise.Lookup, deviceId);

            await LoadChildEnterprises(entMgr, parentEntLookup, appIoTArch, idMgr);

            return(revoked);
        }