Skip to content
Snippets Groups Projects
Commit 4eebdb94 authored by esantangelo's avatar esantangelo
Browse files

entities and configuration

parent 500c9dba
No related branches found
No related tags found
1 merge request!37Feature/evaluation
Showing
with 203 additions and 0 deletions
......@@ -18,10 +18,14 @@ namespace Tsi1.DataLayer.Entities
public bool IsVideoConference { get; set; }
public int? EvaluationId { get; set; }
public int CourseId { get; set; }
public Course Course { get; set; }
public Evaluation Evaluation { get; set; }
public ICollection<Attendance> Attendances { get; set; }
public ICollection<Grade> Grades { get; set; }
......
using System;
using System.Collections.Generic;
using System.Text;
namespace Tsi1.DataLayer.Entities
{
public class Evaluation
{
public Evaluation()
{
EvaluationInscriptions = new HashSet<EvaluationInscription>();
Submissions = new HashSet<Submission>();
}
public int Id { get; set; }
public int EvaluationTypeId { get; set; }
public bool IsCompleted { get; set; }
public EvaluationType EvaluationType { get; set; }
public ICollection<EvaluationInscription> EvaluationInscriptions { get; set; }
public ICollection<Submission> Submissions { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace Tsi1.DataLayer.Entities
{
public class EvaluationInscription
{
public int EvaluationId { get; set; }
public int StudentId { get; set; }
public Evaluation Evaluation { get; set; }
public Student Student { get; set; }
public decimal Grade { get; set; }
public bool HasAttended { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace Tsi1.DataLayer.Entities
{
public class EvaluationType
{
public int Id { get; set; }
public string Name { get; set; }
}
}
......@@ -10,6 +10,12 @@ namespace Tsi1.DataLayer.Entities
public string Name { get; set; }
public string Path { get; set; }
public bool IsSubmission { get; set; }
public int? SubmissionId { get; set; }
public Submission Submission { get; set; }
public SectionItem SectionItem { get; set; }
}
}
......@@ -9,7 +9,9 @@ namespace Tsi1.DataLayer.Entities
public Student()
{
StudentCourses = new HashSet<StudentCourse>();
EvaluationInscriptions = new HashSet<EvaluationInscription>();
Grades = new HashSet<Grade>();
Submissions = new HashSet<Submission>();
}
public int Id { get; set; }
......@@ -25,5 +27,9 @@ namespace Tsi1.DataLayer.Entities
public ICollection<StudentCourse> StudentCourses { get; set; }
public ICollection<Grade> Grades { get; set; }
public ICollection<EvaluationInscription> EvaluationInscriptions { get; set; }
public ICollection<Submission> Submissions { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace Tsi1.DataLayer.Entities
{
public class Submission
{
public int Id { get; set; }
public int StudentId { get; set; }
public int FileId { get; set; }
public Student Student { get; set; }
public File File { get; set; }
public decimal Grade { get; set; }
public bool IsCompleted { get; set; }
}
}
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using System;
using System.Collections.Generic;
using System.Text;
using Tsi1.DataLayer.Entities;
namespace Tsi1.DataLayer.EntityConfiguration
{
public class EvaluationConfiguration : IEntityTypeConfiguration<Evaluation>
{
public void Configure(EntityTypeBuilder<Evaluation> builder)
{
builder.HasKey(x => x.Id);
}
}
}
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using System;
using System.Collections.Generic;
using System.Text;
using Tsi1.DataLayer.Entities;
namespace Tsi1.DataLayer.EntityConfiguration
{
public class EvaluationInscriptionConfiguration : IEntityTypeConfiguration<EvaluationInscription>
{
public void Configure(EntityTypeBuilder<EvaluationInscription> builder)
{
builder.HasKey(x => new { x.EvaluationId, x.StudentId });
builder.Property(x => x.Grade)
.IsRequired()
.HasColumnType("decimal(5,2)");
builder.HasOne(x => x.Evaluation)
.WithMany(x => x.EvaluationInscriptions)
.HasForeignKey(x => x.EvaluationId);
builder.HasOne(x => x.Student)
.WithMany(x => x.EvaluationInscriptions)
.HasForeignKey(x => x.StudentId);
}
}
}
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using System;
using System.Collections.Generic;
using System.Text;
using Tsi1.DataLayer.Entities;
namespace Tsi1.DataLayer.EntityConfiguration
{
public class EvaluationTypeConfiguration : IEntityTypeConfiguration<EvaluationType>
{
public void Configure(EntityTypeBuilder<EvaluationType> builder)
{
builder.HasKey(x => x.Id);
builder.HasIndex(x => x.Name)
.IsUnique();
builder.Property(x => x.Name)
.IsRequired()
.HasColumnType("character varying(50)");
}
}
}
......@@ -23,6 +23,10 @@ namespace Tsi1.DataLayer.EntityConfiguration
builder.HasIndex(x => x.Path)
.IsUnique();
builder.HasOne(x => x.Submission)
.WithOne(x => x.File)
.HasForeignKey<File>(x => x.SubmissionId);
}
}
}
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using System;
using System.Collections.Generic;
using System.Text;
using Tsi1.DataLayer.Entities;
namespace Tsi1.DataLayer.EntityConfiguration
{
public class SubmissionConfiguration : IEntityTypeConfiguration<Submission>
{
public void Configure(EntityTypeBuilder<Submission> builder)
{
builder.HasKey(x => x.Id);
builder.HasIndex(x => new { x.StudentId, x.FileId })
.IsUnique();
builder.Property(x => x.Grade)
.IsRequired()
.HasColumnType("decimal(5,2)");
builder.HasOne(x => x.Student)
.WithMany(x => x.Submissions)
.HasForeignKey(x => x.StudentId);
}
}
}
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