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()); }
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"))); }