コード例 #1
0
        public async Task <ActionResult> Post([FromBody] InstalationInfo instalationInfo)
        {
            if (_customSettings.Configured)
            {
                return(Forbid());
            }

            if (!TryConnectoToDatabase(instalationInfo.SQLServerConfiguration))
            {
                return(ValidationProblem(detail: "Cannot connect to database."));
            }

            if (instalationInfo.FillDatabse.FillDatabaseWithObjects)
            {
                if (!await GenerateDatabase(instalationInfo.SQLServerConfiguration))
                {
                    return(Conflict("Cannot create tables."));
                }
            }
            else if (instalationInfo.FillDatabse.ClearDatabaseData)
            {
                if (!await ClearDatabase(instalationInfo.SQLServerConfiguration))
                {
                    return(Conflict("Cannot clear database."));
                }
            }

            if (!await CreateAdministratorAsync(instalationInfo.AdministratorUserCreationModel))
            {
                return(Conflict("Cannot create administrator account."));
            }

            if (instalationInfo.FillDatabse.FillDatabaseWithSampleData)
            {
                await FillDatabase();
            }

            _customSettings.Configured     = true;
            _customSettings.JwtSecurityKey = RandomJwtKey(128);
            _customSettings.SaveConfiguration();
            return(Ok());
        }
コード例 #2
0
        public async Task <HttpResponseMessage> PostConfigureServer(InstalationInfo instalationInfo)
        {
            var instalationInfoAsJson = JsonSerializer.Serialize(instalationInfo);

            return(await _httpClient.PostAsync("api/instalation/ConfigureServer", new StringContent(instalationInfoAsJson, Encoding.UTF8, "application/json")));
        }