Example #1
0
        public async Task Execute(string odsInstanceName, CloudOdsClaimSet claimSet, ApiMode apiMode)
        {
            var odsSqlConfiguration = await _odsSecretConfigurationProvider.GetSqlConfiguration();

            var cloudOdsInstance = await _getCloudOdsInstanceQuery.Execute(odsInstanceName);

            var firstTimeSetupConfiguration = await GetFirstTimeSetupConfiguration(cloudOdsInstance, claimSet, odsSqlConfiguration);

            SetupAndRuntimeConfigurations(firstTimeSetupConfiguration);

            if (apiMode.SupportsSingleInstance)
            {
                var defaultOdsInstance = new OdsInstanceRegistration
                {
                    Name        = odsInstanceName,
                    Description = "Default single ods instance"
                };
                await _odsInstanceFirstTimeSetupService.CompleteSetup(defaultOdsInstance, claimSet, apiMode);
            }

            CreateClaimSetForAdminApp(firstTimeSetupConfiguration.ClaimSet);

            ApplyAdditionalClaimSetModifications();

            await _usersContext.SaveChangesAsync();

            await _securityContext.SaveChangesAsync();

            await _restartAppServicesCommand.Execute(new CloudOdsApiOperationContext(cloudOdsInstance));
        }
Example #2
0
        public async Task <bool> Execute(string odsInstanceName, CloudOdsClaimSet claimSet, ApiMode apiMode)
        {
            ExtraDatabaseInitializationAction?.Invoke();
            var restartRequired = false;

            if (apiMode.SupportsSingleInstance)
            {
                var defaultOdsInstance = new OdsInstanceRegistration
                {
                    Name         = odsInstanceName,
                    DatabaseName = _instanceService.DatabaseName(0, apiMode),
                    Description  = "Default single ods instance"
                };
                await _firstTimeSetupService.CompleteSetup(defaultOdsInstance, claimSet, apiMode);
            }

            if (!_claimSetCheckService.RequiredClaimSetsExist())
            {
                CreateClaimSetForAdminApp(claimSet);

                ApplyAdditionalClaimSetModifications();

                restartRequired = true;
            }

            await _usersContext.SaveChangesAsync();

            await _securityContext.SaveChangesAsync();

            return(restartRequired);
        }
        public async Task <int> Execute(IRegisterOdsInstanceModel instance, ApiMode mode, string userId, CloudOdsClaimSet cloudOdsClaimSet = null)
        {
            var instanceName = instance.NumericSuffix.Value.ToString();

            var newInstance = new OdsInstanceRegistration
            {
                Name         = instanceName,
                DatabaseName = _inferInstanceService.DatabaseName(instance.NumericSuffix.Value, mode),
                Description  = instance.Description
            };
            await _odsInstanceFirstTimeSetupService.CompleteSetup(newInstance, cloudOdsClaimSet, mode);

            await _identity.UserOdsInstanceRegistrations.AddAsync(
                new UserOdsInstanceRegistration
            {
                OdsInstanceRegistrationId = newInstance.Id,
                UserId = userId
            });

            await _identity.SaveChangesAsync();

            if (mode == ApiMode.YearSpecific)
            {
                _setCurrentSchoolYear.Execute(instanceName, mode, (short)instance.NumericSuffix.Value);
            }

            return(newInstance.Id);
        }
Example #4
0
        public async Task Execute(string odsInstanceName, CloudOdsClaimSet claimSet, ApiMode apiMode)
        {
            ExtraDatabaseInitializationAction?.Invoke();

            if (apiMode.SupportsSingleInstance)
            {
                var defaultOdsInstance = new OdsInstanceRegistration
                {
                    Name        = odsInstanceName,
                    Description = "Default single ods instance"
                };
                await _firstTimeSetupService.CompleteSetup(defaultOdsInstance, claimSet, apiMode);
            }

            CreateClaimSetForAdminApp(claimSet);

            ApplyAdditionalClaimSetModifications();

            await _usersContext.SaveChangesAsync();

            await _securityContext.SaveChangesAsync();
        }
        public async Task <int> Execute(IRegisterOdsInstanceModel instance, ApiMode mode, string userId, CloudOdsClaimSet cloudOdsClaimSet = null)
        {
            var instanceName = InferInstanceDatabaseName(instance.NumericSuffix.Value, mode);

            var newInstance = new OdsInstanceRegistration
            {
                Name        = instanceName,
                Description = instance.Description
            };
            await _odsInstanceFirstTimeSetupService.CompleteSetup(newInstance, cloudOdsClaimSet, mode);

            _identity.UserOdsInstanceRegistrations.Add(
                new UserOdsInstanceRegistration
            {
                OdsInstanceRegistrationId = newInstance.Id,
                UserId = userId
            });

            _identity.SaveChanges();

            return(newInstance.Id);
        }