Enable CORS in all environments and disable HTTPS redirect in dev. Seed the database after migrations. Make the API base URL configurable, defaulting to the Android emulator host, and use per-config Android manifests.
90 lines
3.2 KiB
C#
90 lines
3.2 KiB
C#
using Microsoft.EntityFrameworkCore;
|
||
using SlipItIn.Shared.Models;
|
||
|
||
namespace SlipItIn.Server.Data;
|
||
|
||
/// <summary>
|
||
/// Befüllt die Datenbank mit Testdaten (2 Testuser, einige Dutzend Phrasen),
|
||
/// wenn sie leer ist. Dient der Erleichterung manueller Tests.
|
||
/// </summary>
|
||
public static class DbSeeder
|
||
{
|
||
public static async Task SeedAsync(SlipItInDbContext context)
|
||
{
|
||
// Nur seeden, wenn die Datenbank leer ist
|
||
if (await context.Users.AnyAsync() || await context.Phrases.AnyAsync())
|
||
return;
|
||
|
||
var alice = new User
|
||
{
|
||
Username = "alice",
|
||
Email = "alice@test.local",
|
||
PasswordHash = BCrypt.Net.BCrypt.HashPassword("Test123!")
|
||
};
|
||
|
||
var bob = new User
|
||
{
|
||
Username = "bob",
|
||
Email = "bob@test.local",
|
||
PasswordHash = BCrypt.Net.BCrypt.HashPassword("Test123!")
|
||
};
|
||
|
||
context.Users.AddRange(alice, bob);
|
||
await context.SaveChangesAsync();
|
||
|
||
var phrases = new[]
|
||
{
|
||
"Das hat mir meine Oma schon immer gesagt.",
|
||
"Ich hab da mal eine Doku gesehen.",
|
||
"Das ist wie damals in der Grundschule.",
|
||
"Das muss man sich mal auf der Zunge zergehen lassen.",
|
||
"Da kommt mir direkt ein Lied in den Sinn.",
|
||
"Das ist wie beim Autofahren: Bremsen kann man immer noch.",
|
||
"Ich habe das Gefühl, wir reden aneinander vorbei.",
|
||
"Das würde ich an deiner Stelle nochmal überdenken.",
|
||
"Ich glaube, da steckt mehr dahinter.",
|
||
"Also ich finde, das riecht verdächtig nach Montag.",
|
||
"Das schmeckt nach mehr.",
|
||
"Da ist der Wurm drin.",
|
||
"Das hat hand und Fuß.",
|
||
"Das ist ein zweischneidiges Schwert.",
|
||
"Da liegt der Hase im Pfeffer.",
|
||
"Das ist wie ein guter Wein – wird mit den Jahren besser.",
|
||
"Ich würde sagen: Glück im Unglück.",
|
||
"Das ist schon fast eine Wissenschaft für sich.",
|
||
"Man muss das Kind beim Namen nennen.",
|
||
"Das ist wie Weihnachten und Geburtstag zusammen.",
|
||
"Da geht mir das Herz auf.",
|
||
"Ich würde das jetzt nicht überbewerten.",
|
||
"Das kommt mir spanisch vor.",
|
||
"Das ist das Beste seit geschnittenem Brot.",
|
||
"Da bleibt kein Auge trocken.",
|
||
"Das ist wie Nägel mit Köpfen machen.",
|
||
"Ich habe da so eine Vermutung.",
|
||
"Das ist wie ein roter Faden.",
|
||
"Da platzt mir gleich der Kragen.",
|
||
"Ich bin da ganz bei dir.",
|
||
"Das muss man erstmal sacken lassen.",
|
||
"Das ist wie ein offenes Buch.",
|
||
"Da würde ich nicht drauf wetten.",
|
||
"Das ist wie eine Achterbahn der Gefühle.",
|
||
"Ich hab da ein ganz mieses Gefühl bei.",
|
||
"Das ist wie ein Dorn im Auge."
|
||
};
|
||
|
||
var random = new Random(42);
|
||
var creators = new[] { alice, bob };
|
||
|
||
foreach (var text in phrases)
|
||
{
|
||
context.Phrases.Add(new Phrase
|
||
{
|
||
Text = text,
|
||
CreatorId = creators[random.Next(creators.Length)].Id
|
||
});
|
||
}
|
||
|
||
await context.SaveChangesAsync();
|
||
}
|
||
}
|