- Added Hall of Fame module logic (Models, Controller, Service). - Implemented 'One Entry Per User' and 'Publish/Draft' workflow. - Updated UI to Grid Layout (Index.razor) and Unified Form (Edit.razor). - Added Database Migration 01000001 for new columns. - Bumped version to 1.0.1.
131 lines
5.0 KiB
C#
131 lines
5.0 KiB
C#
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
using Microsoft.EntityFrameworkCore.Migrations;
|
|
using Oqtane.Databases.Interfaces;
|
|
using Oqtane.Migrations;
|
|
using SZUAbsolventenverein.Module.HallOfFame.Migrations.EntityBuilders;
|
|
using SZUAbsolventenverein.Module.HallOfFame.Repository;
|
|
|
|
namespace SZUAbsolventenverein.Module.HallOfFame.Migrations
|
|
{
|
|
[DbContext(typeof(HallOfFameContext))]
|
|
[Migration("SZUAbsolventenverein.Module.HallOfFame.01.00.00.01")]
|
|
public class AddHallOfFameColumns : MultiDatabaseMigration
|
|
{
|
|
public AddHallOfFameColumns(IDatabase database) : base(database)
|
|
{
|
|
}
|
|
|
|
protected override void Up(MigrationBuilder migrationBuilder)
|
|
{
|
|
var entityBuilder = new HallOfFameEntityBuilder(migrationBuilder, ActiveDatabase);
|
|
|
|
// Add new columns manually since we are upgrading an existing table
|
|
// Note: Integer columns are generated as default/nullable depending on definition, Oqtane Helpers handle generic types.
|
|
// Using logic similar to Oqtane.Migrations.EntityBuilders
|
|
|
|
if (ActiveDatabase.Name == "Sqlite") // Sqlite specific or generic
|
|
{
|
|
// Generic AddColumn: Table, Name, Type, Nullable
|
|
// However, Oqtane EntityBuilder usually builds tables.
|
|
// We will use migrationBuilder directly via helper if possible or standard AddColumn.
|
|
|
|
migrationBuilder.AddColumn<int>(
|
|
name: "Year",
|
|
table: "SZUAbsolventenvereinHallOfFame",
|
|
nullable: false,
|
|
defaultValue: 0);
|
|
|
|
migrationBuilder.AddColumn<string>(
|
|
name: "Description",
|
|
table: "SZUAbsolventenvereinHallOfFame",
|
|
nullable: true); // Allow nulls initially or empty? MaxString usually nullable in Oqtane context? Let's check.
|
|
|
|
migrationBuilder.AddColumn<string>(
|
|
name: "Image",
|
|
table: "SZUAbsolventenvereinHallOfFame",
|
|
nullable: true);
|
|
|
|
migrationBuilder.AddColumn<string>(
|
|
name: "Link",
|
|
table: "SZUAbsolventenvereinHallOfFame",
|
|
nullable: true);
|
|
|
|
migrationBuilder.AddColumn<string>(
|
|
name: "Status",
|
|
table: "SZUAbsolventenvereinHallOfFame",
|
|
maxLength: 50,
|
|
nullable: true);
|
|
|
|
migrationBuilder.AddColumn<int>(
|
|
name: "UserId",
|
|
table: "SZUAbsolventenvereinHallOfFame",
|
|
nullable: false,
|
|
defaultValue: 0);
|
|
}
|
|
else
|
|
{
|
|
// For SQL Server / others, simply use same AddColumn but allow EF Core to handle types
|
|
migrationBuilder.AddColumn<int>(
|
|
name: "Year",
|
|
table: "SZUAbsolventenvereinHallOfFame",
|
|
nullable: false,
|
|
defaultValue: 0);
|
|
|
|
migrationBuilder.AddColumn<string>(
|
|
name: "Description",
|
|
table: "SZUAbsolventenvereinHallOfFame",
|
|
nullable: true);
|
|
|
|
migrationBuilder.AddColumn<string>(
|
|
name: "Image",
|
|
table: "SZUAbsolventenvereinHallOfFame",
|
|
nullable: true);
|
|
|
|
migrationBuilder.AddColumn<string>(
|
|
name: "Link",
|
|
table: "SZUAbsolventenvereinHallOfFame",
|
|
nullable: true);
|
|
|
|
migrationBuilder.AddColumn<string>(
|
|
name: "Status",
|
|
table: "SZUAbsolventenvereinHallOfFame",
|
|
maxLength: 50,
|
|
nullable: true);
|
|
|
|
migrationBuilder.AddColumn<int>(
|
|
name: "UserId",
|
|
table: "SZUAbsolventenvereinHallOfFame",
|
|
nullable: false,
|
|
defaultValue: 0);
|
|
}
|
|
}
|
|
|
|
protected override void Down(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.DropColumn(
|
|
name: "Year",
|
|
table: "SZUAbsolventenvereinHallOfFame");
|
|
|
|
migrationBuilder.DropColumn(
|
|
name: "Description",
|
|
table: "SZUAbsolventenvereinHallOfFame");
|
|
|
|
migrationBuilder.DropColumn(
|
|
name: "Image",
|
|
table: "SZUAbsolventenvereinHallOfFame");
|
|
|
|
migrationBuilder.DropColumn(
|
|
name: "Link",
|
|
table: "SZUAbsolventenvereinHallOfFame");
|
|
|
|
migrationBuilder.DropColumn(
|
|
name: "Status",
|
|
table: "SZUAbsolventenvereinHallOfFame");
|
|
|
|
migrationBuilder.DropColumn(
|
|
name: "UserId",
|
|
table: "SZUAbsolventenvereinHallOfFame");
|
|
}
|
|
}
|
|
}
|