diff --git a/BrightGlimmer.Api/BrightGlimmer.Api.csproj b/BrightGlimmer.Api/BrightGlimmer.Api.csproj
index 40c5f3e..6c7fa93 100644
--- a/BrightGlimmer.Api/BrightGlimmer.Api.csproj
+++ b/BrightGlimmer.Api/BrightGlimmer.Api.csproj
@@ -9,15 +9,13 @@
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
+
diff --git a/BrightGlimmer.Api/Startup.cs b/BrightGlimmer.Api/Startup.cs
index 16ea2aa..4420952 100644
--- a/BrightGlimmer.Api/Startup.cs
+++ b/BrightGlimmer.Api/Startup.cs
@@ -2,6 +2,7 @@
using BrightGlimmer.Data.Interfaces;
using BrightGlimmer.Data.Repositories;
using BrightGlimmer.Domain;
+using JsonNet.PrivateSettersContractResolvers;
using MediatR;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
@@ -28,7 +29,7 @@ namespace BrightGlimmer.Api
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
.AddJsonOptions(options =>
{
- options.SerializerSettings.ContractResolver = new PrivateSetterContractResolver()
+ options.SerializerSettings.ContractResolver = new PrivateSetterContractResolver();
});
services.AddMediatR();
@@ -37,9 +38,8 @@ namespace BrightGlimmer.Api
services.AddTransient(typeof(IQueryRepository<>), typeof(QueryRepository<>));
services.AddTransient(typeof(ICommandRepository<>), typeof(CommandRepository<>));
- services.AddTransient(typeof(IQueryRepository), typeof(StudentQueryRepository));
-
- services.AddDbContext(options => options.UseSqlite(Configuration.GetConnectionString("DefaultConnection")));
+ services.AddDbContext(options => options.UseLazyLoadingProxies()
+ .UseSqlite(Configuration.GetConnectionString("DefaultConnection")));
services.AddTransient();
}
@@ -59,11 +59,11 @@ namespace BrightGlimmer.Api
app.UseMvc();
// Makes sure that the database is in fact created
- //using (var serviceScope = app.ApplicationServices.GetService().CreateScope())
- //{
- // var context = serviceScope.ServiceProvider.GetRequiredService();
- // context.Database.EnsureCreated();
- //}
+ using (var serviceScope = app.ApplicationServices.GetService().CreateScope())
+ {
+ var context = serviceScope.ServiceProvider.GetRequiredService();
+ context.Database.EnsureCreated();
+ }
}
}
}
\ No newline at end of file
diff --git a/BrightGlimmer.Data/BrightGlimmer.Data.csproj b/BrightGlimmer.Data/BrightGlimmer.Data.csproj
index d3f0c41..bbf2d69 100644
--- a/BrightGlimmer.Data/BrightGlimmer.Data.csproj
+++ b/BrightGlimmer.Data/BrightGlimmer.Data.csproj
@@ -7,6 +7,7 @@
+
diff --git a/BrightGlimmer.Data/Repositories/StudentQueryRepository.cs b/BrightGlimmer.Data/Repositories/StudentQueryRepository.cs
index 88cf9b0..eacca84 100644
--- a/BrightGlimmer.Data/Repositories/StudentQueryRepository.cs
+++ b/BrightGlimmer.Data/Repositories/StudentQueryRepository.cs
@@ -10,6 +10,7 @@ using System.Threading.Tasks;
namespace BrightGlimmer.Data.Repositories
{
+ /* TODO: REMOVE MAYBE? */
public class StudentQueryRepository : QueryRepository
{
public StudentQueryRepository(BgContext context) : base(context) { }
@@ -34,9 +35,9 @@ namespace BrightGlimmer.Data.Repositories
public override async Task GetAsync(Guid id)
{
return await context.Students
- .Include(x => x.Phones)
- .Include(x => x.Address)
- .Include(x => x.AssignedCourses)
+ //.Include(x => x.Phones)
+ //.Include(x => x.Address)
+ //.Include(x => x.AssignedCourses)
.SingleAsync(x => x.Id == id);
}
}
diff --git a/BrightGlimmer.Data/bright_glimmer.db b/BrightGlimmer.Data/bright_glimmer.db
index 26a327e..86b149f 100644
Binary files a/BrightGlimmer.Data/bright_glimmer.db and b/BrightGlimmer.Data/bright_glimmer.db differ
diff --git a/BrightGlimmer.Domain/Address.cs b/BrightGlimmer.Domain/Address.cs
index 927fa31..cd1098c 100644
--- a/BrightGlimmer.Domain/Address.cs
+++ b/BrightGlimmer.Domain/Address.cs
@@ -20,7 +20,7 @@ namespace BrightGlimmer.Domain
[JsonIgnore]
public decimal Longitude { get; private set; }
- private Address() { }
+ protected Address() { }
public Address(string streetAddress1,
string streetAddress2,
diff --git a/BrightGlimmer.Domain/AssignedCourse.cs b/BrightGlimmer.Domain/AssignedCourse.cs
index e5ea3a1..7aec573 100644
--- a/BrightGlimmer.Domain/AssignedCourse.cs
+++ b/BrightGlimmer.Domain/AssignedCourse.cs
@@ -12,10 +12,10 @@ namespace BrightGlimmer.Domain
public bool IsActive { get; set; }
public string Term { get; set; }
- public Student Student { get; private set; }
- public Course Course { get; private set; }
+ public virtual Student Student { get; private set; }
+ public virtual Course Course { get; private set; }
- private AssignedCourse() { }
+ protected AssignedCourse() { }
public AssignedCourse(bool isActive, string term)
{
diff --git a/BrightGlimmer.Domain/Course.cs b/BrightGlimmer.Domain/Course.cs
index 0201cb2..05fc513 100644
--- a/BrightGlimmer.Domain/Course.cs
+++ b/BrightGlimmer.Domain/Course.cs
@@ -12,7 +12,7 @@ namespace BrightGlimmer.Domain
public string Description { get; set; }
public string Code { get; set; }
- private Course() { }
+ protected Course() { }
public Course(string name, string description, string code)
{
diff --git a/BrightGlimmer.Domain/Phone.cs b/BrightGlimmer.Domain/Phone.cs
index 1401132..3fda723 100644
--- a/BrightGlimmer.Domain/Phone.cs
+++ b/BrightGlimmer.Domain/Phone.cs
@@ -16,7 +16,7 @@ namespace BrightGlimmer.Domain
[JsonProperty]
public int Number { get; private set; }
- private Phone() { }
+ protected Phone() { }
public Phone(PhoneType type, int areaCode, int number)
{
diff --git a/BrightGlimmer.Domain/Student.cs b/BrightGlimmer.Domain/Student.cs
index 5db02bf..280d377 100644
--- a/BrightGlimmer.Domain/Student.cs
+++ b/BrightGlimmer.Domain/Student.cs
@@ -1,4 +1,5 @@
-using System;
+using Newtonsoft.Json;
+using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
@@ -17,16 +18,16 @@ namespace BrightGlimmer.Domain
public string MiddleName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
- public Address Address { get; private set; }
+ public virtual Address Address { get; private set; }
public string ProfilePictureUrl { get; set; }
private readonly List phones = new List();
- public IReadOnlyList Phones => phones;
+ public virtual IReadOnlyList Phones => phones;
private readonly List assignedCourses = new List();
- public IReadOnlyList AssignedCourses => assignedCourses;
+ public virtual IReadOnlyList AssignedCourses => assignedCourses;
- private Student() { }
+ protected Student() { }
public Student(string firstName,
string lastName,