Skip to content
Snippets Groups Projects
Commit 7eb99b91 authored by esantangelo's avatar esantangelo
Browse files

migrations

parent ac5729eb
No related branches found
No related tags found
1 merge request!37Feature/evaluation
using Microsoft.EntityFrameworkCore.Migrations;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
namespace Tsi1.DataLayer.Migrations
{
public partial class addevaluationentities : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<bool>(
name: "IsSubmission",
table: "Files",
nullable: false,
defaultValue: false);
migrationBuilder.AddColumn<int>(
name: "SubmissionId",
table: "Files",
nullable: true);
migrationBuilder.AddColumn<int>(
name: "EvaluationId",
table: "Activities",
nullable: true);
migrationBuilder.CreateTable(
name: "EvaluationTypes",
columns: table => new
{
Id = table.Column<int>(nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
Name = table.Column<string>(type: "character varying(50)", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_EvaluationTypes", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Evaluations",
columns: table => new
{
Id = table.Column<int>(nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
EvaluationTypeId = table.Column<int>(nullable: false),
IsCompleted = table.Column<bool>(nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Evaluations", x => x.Id);
table.ForeignKey(
name: "FK_Evaluations_EvaluationTypes_EvaluationTypeId",
column: x => x.EvaluationTypeId,
principalTable: "EvaluationTypes",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "EvaluationInscriptions",
columns: table => new
{
EvaluationId = table.Column<int>(nullable: false),
StudentId = table.Column<int>(nullable: false),
Grade = table.Column<decimal>(type: "decimal(5,2)", nullable: false),
HasAttended = table.Column<bool>(nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_EvaluationInscriptions", x => new { x.EvaluationId, x.StudentId });
table.ForeignKey(
name: "FK_EvaluationInscriptions_Evaluations_EvaluationId",
column: x => x.EvaluationId,
principalTable: "Evaluations",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_EvaluationInscriptions_Students_StudentId",
column: x => x.StudentId,
principalTable: "Students",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Submissions",
columns: table => new
{
Id = table.Column<int>(nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
StudentId = table.Column<int>(nullable: false),
FileId = table.Column<int>(nullable: false),
Grade = table.Column<decimal>(type: "decimal(5,2)", nullable: false),
IsCompleted = table.Column<bool>(nullable: false),
EvaluationId = table.Column<int>(nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Submissions", x => x.Id);
table.ForeignKey(
name: "FK_Submissions_Evaluations_EvaluationId",
column: x => x.EvaluationId,
principalTable: "Evaluations",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
table.ForeignKey(
name: "FK_Submissions_Students_StudentId",
column: x => x.StudentId,
principalTable: "Students",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IX_Files_SubmissionId",
table: "Files",
column: "SubmissionId",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_Activities_EvaluationId",
table: "Activities",
column: "EvaluationId");
migrationBuilder.CreateIndex(
name: "IX_EvaluationInscriptions_StudentId",
table: "EvaluationInscriptions",
column: "StudentId");
migrationBuilder.CreateIndex(
name: "IX_Evaluations_EvaluationTypeId",
table: "Evaluations",
column: "EvaluationTypeId");
migrationBuilder.CreateIndex(
name: "IX_EvaluationTypes_Name",
table: "EvaluationTypes",
column: "Name",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_Submissions_EvaluationId",
table: "Submissions",
column: "EvaluationId");
migrationBuilder.CreateIndex(
name: "IX_Submissions_StudentId_FileId",
table: "Submissions",
columns: new[] { "StudentId", "FileId" },
unique: true);
migrationBuilder.AddForeignKey(
name: "FK_Activities_Evaluations_EvaluationId",
table: "Activities",
column: "EvaluationId",
principalTable: "Evaluations",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Files_Submissions_SubmissionId",
table: "Files",
column: "SubmissionId",
principalTable: "Submissions",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_Activities_Evaluations_EvaluationId",
table: "Activities");
migrationBuilder.DropForeignKey(
name: "FK_Files_Submissions_SubmissionId",
table: "Files");
migrationBuilder.DropTable(
name: "EvaluationInscriptions");
migrationBuilder.DropTable(
name: "Submissions");
migrationBuilder.DropTable(
name: "Evaluations");
migrationBuilder.DropTable(
name: "EvaluationTypes");
migrationBuilder.DropIndex(
name: "IX_Files_SubmissionId",
table: "Files");
migrationBuilder.DropIndex(
name: "IX_Activities_EvaluationId",
table: "Activities");
migrationBuilder.DropColumn(
name: "IsSubmission",
table: "Files");
migrationBuilder.DropColumn(
name: "SubmissionId",
table: "Files");
migrationBuilder.DropColumn(
name: "EvaluationId",
table: "Activities");
}
}
}
......@@ -29,6 +29,9 @@ namespace Tsi1.DataLayer.Migrations
b.Property<int>("CourseId")
.HasColumnType("integer");
b.Property<int?>("EvaluationId")
.HasColumnType("integer");
b.Property<bool>("IsVideoConference")
.HasColumnType("boolean");
......@@ -40,6 +43,8 @@ namespace Tsi1.DataLayer.Migrations
b.HasIndex("CourseId");
b.HasIndex("EvaluationId");
b.ToTable("Activities");
});
......@@ -165,6 +170,66 @@ namespace Tsi1.DataLayer.Migrations
b.ToTable("Courses");
});
modelBuilder.Entity("Tsi1.DataLayer.Entities.Evaluation", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
b.Property<int>("EvaluationTypeId")
.HasColumnType("integer");
b.Property<bool>("IsCompleted")
.HasColumnType("boolean");
b.HasKey("Id");
b.HasIndex("EvaluationTypeId");
b.ToTable("Evaluations");
});
modelBuilder.Entity("Tsi1.DataLayer.Entities.EvaluationInscription", b =>
{
b.Property<int>("EvaluationId")
.HasColumnType("integer");
b.Property<int>("StudentId")
.HasColumnType("integer");
b.Property<decimal>("Grade")
.HasColumnType("decimal(5,2)");
b.Property<bool>("HasAttended")
.HasColumnType("boolean");
b.HasKey("EvaluationId", "StudentId");
b.HasIndex("StudentId");
b.ToTable("EvaluationInscriptions");
});
modelBuilder.Entity("Tsi1.DataLayer.Entities.EvaluationType", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
b.Property<string>("Name")
.IsRequired()
.HasColumnType("character varying(50)");
b.HasKey("Id");
b.HasIndex("Name")
.IsUnique();
b.ToTable("EvaluationTypes");
});
modelBuilder.Entity("Tsi1.DataLayer.Entities.File", b =>
{
b.Property<int>("Id")
......@@ -172,6 +237,9 @@ namespace Tsi1.DataLayer.Migrations
.HasColumnType("integer")
.HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
b.Property<bool>("IsSubmission")
.HasColumnType("boolean");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("character varying(50)");
......@@ -180,11 +248,17 @@ namespace Tsi1.DataLayer.Migrations
.IsRequired()
.HasColumnType("character varying(1000)");
b.Property<int?>("SubmissionId")
.HasColumnType("integer");
b.HasKey("Id");
b.HasIndex("Path")
.IsUnique();
b.HasIndex("SubmissionId")
.IsUnique();
b.ToTable("Files");
});
......@@ -473,6 +547,38 @@ namespace Tsi1.DataLayer.Migrations
b.ToTable("StudentCourses");
});
modelBuilder.Entity("Tsi1.DataLayer.Entities.Submission", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
b.Property<int?>("EvaluationId")
.HasColumnType("integer");
b.Property<int>("FileId")
.HasColumnType("integer");
b.Property<decimal>("Grade")
.HasColumnType("decimal(5,2)");
b.Property<bool>("IsCompleted")
.HasColumnType("boolean");
b.Property<int>("StudentId")
.HasColumnType("integer");
b.HasKey("Id");
b.HasIndex("EvaluationId");
b.HasIndex("StudentId", "FileId")
.IsUnique();
b.ToTable("Submissions");
});
modelBuilder.Entity("Tsi1.DataLayer.Entities.Survey", b =>
{
b.Property<int>("Id")
......@@ -671,6 +777,10 @@ namespace Tsi1.DataLayer.Migrations
.HasForeignKey("CourseId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Tsi1.DataLayer.Entities.Evaluation", "Evaluation")
.WithMany()
.HasForeignKey("EvaluationId");
});
modelBuilder.Entity("Tsi1.DataLayer.Entities.Attendance", b =>
......@@ -715,6 +825,37 @@ namespace Tsi1.DataLayer.Migrations
.IsRequired();
});
modelBuilder.Entity("Tsi1.DataLayer.Entities.Evaluation", b =>
{
b.HasOne("Tsi1.DataLayer.Entities.EvaluationType", "EvaluationType")
.WithMany()
.HasForeignKey("EvaluationTypeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("Tsi1.DataLayer.Entities.EvaluationInscription", b =>
{
b.HasOne("Tsi1.DataLayer.Entities.Evaluation", "Evaluation")
.WithMany("EvaluationInscriptions")
.HasForeignKey("EvaluationId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Tsi1.DataLayer.Entities.Student", "Student")
.WithMany("EvaluationInscriptions")
.HasForeignKey("StudentId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("Tsi1.DataLayer.Entities.File", b =>
{
b.HasOne("Tsi1.DataLayer.Entities.Submission", "Submission")
.WithOne("File")
.HasForeignKey("Tsi1.DataLayer.Entities.File", "SubmissionId");
});
modelBuilder.Entity("Tsi1.DataLayer.Entities.ForumUser", b =>
{
b.HasOne("Tsi1.DataLayer.Entities.Forum", "Forum")
......@@ -859,6 +1000,19 @@ namespace Tsi1.DataLayer.Migrations
.IsRequired();
});
modelBuilder.Entity("Tsi1.DataLayer.Entities.Submission", b =>
{
b.HasOne("Tsi1.DataLayer.Entities.Evaluation", null)
.WithMany("Submissions")
.HasForeignKey("EvaluationId");
b.HasOne("Tsi1.DataLayer.Entities.Student", "Student")
.WithMany("Submissions")
.HasForeignKey("StudentId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("Tsi1.DataLayer.Entities.Survey", b =>
{
b.HasOne("Tsi1.DataLayer.Entities.Tenant", "Tenant")
......
......@@ -35,8 +35,12 @@ namespace Tsi1.DataLayer
public DbSet<Communication> Communications { get; set; }
public DbSet<Activity> Activities { get; set; }
public DbSet<Attendance> Attendances { get; set; }
public DbSet<Grade> Grades { get; set; }
public DbSet<Evaluation> Evaluations { get; set; }
public DbSet<EvaluationInscription> EvaluationInscriptions { get; set; }
public DbSet<Submission> Submissions { get; set; }
public DbSet<EvaluationType> EvaluationTypes { get; set; }
......@@ -71,6 +75,10 @@ namespace Tsi1.DataLayer
modelBuilder.ApplyConfiguration(new ActivityConfiguration());
modelBuilder.ApplyConfiguration(new AttendanceConfiguration());
modelBuilder.ApplyConfiguration(new GradeConfiguration());
modelBuilder.ApplyConfiguration(new EvaluationConfiguration());
modelBuilder.ApplyConfiguration(new EvaluationInscriptionConfiguration());
modelBuilder.ApplyConfiguration(new SubmissionConfiguration());
modelBuilder.ApplyConfiguration(new EvaluationTypeConfiguration());
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment