From 0e121a9d2264ebab190bc277b5ab93e445d57486 Mon Sep 17 00:00:00 2001 From: esantangelo <enzo020895@gmail.com> Date: Sun, 29 Nov 2020 16:05:26 -0300 Subject: [PATCH] activity and attendance entities --- Tsi1.Api/Tsi1.DataLayer/Entities/Activity.cs | 26 +++++++++++++++++++ .../Tsi1.DataLayer/Entities/Attendance.cs | 21 +++++++++++++++ Tsi1.Api/Tsi1.DataLayer/Entities/Course.cs | 3 +++ Tsi1.Api/Tsi1.DataLayer/Entities/User.cs | 2 ++ .../ActivityConfiguration.cs | 25 ++++++++++++++++++ .../AttendanceConfiguration.cs | 25 ++++++++++++++++++ Tsi1.Api/Tsi1.DataLayer/Tsi1Context.cs | 5 +++- 7 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 Tsi1.Api/Tsi1.DataLayer/Entities/Activity.cs create mode 100644 Tsi1.Api/Tsi1.DataLayer/Entities/Attendance.cs create mode 100644 Tsi1.Api/Tsi1.DataLayer/EntityConfiguration/ActivityConfiguration.cs create mode 100644 Tsi1.Api/Tsi1.DataLayer/EntityConfiguration/AttendanceConfiguration.cs diff --git a/Tsi1.Api/Tsi1.DataLayer/Entities/Activity.cs b/Tsi1.Api/Tsi1.DataLayer/Entities/Activity.cs new file mode 100644 index 0000000..4a0ad03 --- /dev/null +++ b/Tsi1.Api/Tsi1.DataLayer/Entities/Activity.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Tsi1.DataLayer.Entities +{ + public class Activity + { + public Activity() + { + Attendances = new HashSet<Attendance>(); + } + + public int Id { get; set; } + + public string Name { get; set; } + + public bool IsVideoConference { get; set; } + + public int CourseId { get; set; } + + public Course Course { get; set; } + + public ICollection<Attendance> Attendances { get; set; } + } +} diff --git a/Tsi1.Api/Tsi1.DataLayer/Entities/Attendance.cs b/Tsi1.Api/Tsi1.DataLayer/Entities/Attendance.cs new file mode 100644 index 0000000..4c2257a --- /dev/null +++ b/Tsi1.Api/Tsi1.DataLayer/Entities/Attendance.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Tsi1.DataLayer.Entities +{ + public class Attendance + { + public int Id { get; set; } + + public DateTime Date { get; set; } + + public int UserId { get; set; } + + public int ActivityId { get; set; } + + public User User { get; set; } + + public Activity Activity { get; set; } + } +} diff --git a/Tsi1.Api/Tsi1.DataLayer/Entities/Course.cs b/Tsi1.Api/Tsi1.DataLayer/Entities/Course.cs index f7efedf..c09ae3a 100644 --- a/Tsi1.Api/Tsi1.DataLayer/Entities/Course.cs +++ b/Tsi1.Api/Tsi1.DataLayer/Entities/Course.cs @@ -12,6 +12,7 @@ namespace Tsi1.DataLayer.Entities ProfessorCourses = new HashSet<ProfessorCourse>(); Sections = new HashSet<Section>(); Communications = new HashSet<Communication>(); + Activities = new HashSet<Activity>(); } public int Id { get; set; } @@ -25,5 +26,7 @@ namespace Tsi1.DataLayer.Entities public ICollection<Section> Sections { get; set; } public ICollection<Communication> Communications { get; set; } + + public ICollection<Activity> Activities { get; set; } } } diff --git a/Tsi1.Api/Tsi1.DataLayer/Entities/User.cs b/Tsi1.Api/Tsi1.DataLayer/Entities/User.cs index e365632..fb5427e 100644 --- a/Tsi1.Api/Tsi1.DataLayer/Entities/User.cs +++ b/Tsi1.Api/Tsi1.DataLayer/Entities/User.cs @@ -12,6 +12,7 @@ namespace Tsi1.DataLayer.Entities PostMessages = new HashSet<PostMessage>(); ForumUsers = new HashSet<ForumUser>(); SurveyResponses = new HashSet<SurveyResponse>(); + Attendances = new HashSet<Attendance>(); } public int Id { get; set; } @@ -43,5 +44,6 @@ namespace Tsi1.DataLayer.Entities public ICollection<PostMessage> PostMessages { get; set; } public ICollection<ForumUser> ForumUsers { get; set; } public ICollection<SurveyResponse> SurveyResponses { get; set; } + public ICollection<Attendance> Attendances { get; set; } } } diff --git a/Tsi1.Api/Tsi1.DataLayer/EntityConfiguration/ActivityConfiguration.cs b/Tsi1.Api/Tsi1.DataLayer/EntityConfiguration/ActivityConfiguration.cs new file mode 100644 index 0000000..bb24098 --- /dev/null +++ b/Tsi1.Api/Tsi1.DataLayer/EntityConfiguration/ActivityConfiguration.cs @@ -0,0 +1,25 @@ +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 ActivityConfiguration : IEntityTypeConfiguration<Activity> + { + public void Configure(EntityTypeBuilder<Activity> builder) + { + builder.HasKey(x => x.Id); + + builder.Property(x => x.Name) + .IsRequired() + .HasColumnType("character varying(50)"); + + builder.HasOne(x => x.Course) + .WithMany(x => x.Activities) + .HasForeignKey(x => x.CourseId); + } + } +} diff --git a/Tsi1.Api/Tsi1.DataLayer/EntityConfiguration/AttendanceConfiguration.cs b/Tsi1.Api/Tsi1.DataLayer/EntityConfiguration/AttendanceConfiguration.cs new file mode 100644 index 0000000..d8e88de --- /dev/null +++ b/Tsi1.Api/Tsi1.DataLayer/EntityConfiguration/AttendanceConfiguration.cs @@ -0,0 +1,25 @@ +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 AttendanceConfiguration : IEntityTypeConfiguration<Attendance> + { + public void Configure(EntityTypeBuilder<Attendance> builder) + { + builder.HasKey(x => x.Id); + + builder.HasOne(x => x.User) + .WithMany(x => x.Attendances) + .HasForeignKey(x => x.UserId); + + builder.HasOne(x => x.Activity) + .WithMany(x => x.Attendances) + .HasForeignKey(x => x.ActivityId); + } + } +} diff --git a/Tsi1.Api/Tsi1.DataLayer/Tsi1Context.cs b/Tsi1.Api/Tsi1.DataLayer/Tsi1Context.cs index b35e7b2..bda60bb 100644 --- a/Tsi1.Api/Tsi1.DataLayer/Tsi1Context.cs +++ b/Tsi1.Api/Tsi1.DataLayer/Tsi1Context.cs @@ -32,8 +32,9 @@ namespace Tsi1.DataLayer public DbSet<SurveyQuestion> SurveyQuestions { get; set; } public DbSet<SurveyResponse> SurveyResponses { get; set; } public DbSet<AnswerOption> AnswerOptions { get; set; } - public DbSet<Communication> Communications { get; set; } + public DbSet<Activity> Activities { get; set; } + public DbSet<Attendance> Attendances { get; set; } @@ -65,6 +66,8 @@ namespace Tsi1.DataLayer modelBuilder.ApplyConfiguration(new SurveyResponseConfiguration()); modelBuilder.ApplyConfiguration(new AnswerOptionConfiguration()); modelBuilder.ApplyConfiguration(new CommunicationConfiguration()); + modelBuilder.ApplyConfiguration(new ActivityConfiguration()); + modelBuilder.ApplyConfiguration(new AttendanceConfiguration()); } } } -- GitLab