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