Restructured query repositries to move ef logic from handlers

This commit is contained in:
2019-04-27 00:02:55 -04:00
parent 7be4075222
commit 1a95acac01
18 changed files with 169 additions and 59 deletions

View File

@@ -1,9 +1,11 @@
using BrightGlimmer.Data.Interfaces;
using BrightGlimmer.Domain;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BrightGlimmer.Data.Repositories
{
@@ -27,5 +29,10 @@ namespace BrightGlimmer.Data.Repositories
{
return context.Set<T>().Find(id);
}
public virtual async Task<T> GetAsync(Guid id)
{
return await context.Set<T>().SingleAsync(x => x.Id == id);
}
}
}

View File

@@ -1,15 +1,43 @@
using BrightGlimmer.Data.Interfaces;
using BrightGlimmer.Domain;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.ChangeTracking;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BrightGlimmer.Data.Repositories
{
public class StudentQueryRepository : QueryRepository<Student>
{
public StudentQueryRepository(BgContext context) : base(context) { }
public override IQueryable<Student> Get()
{
return context.Students
.Include(x => x.Phones)
.Include(x => x.Address)
.Include(x => x.AssignedCourses);
}
public override Student Get(Guid id)
{
return context.Students
.Include(x => x.Phones)
.Include(x => x.Address)
.Include(x => x.AssignedCourses)
.Single(x => x.Id == id);
}
public override async Task<Student> GetAsync(Guid id)
{
return await context.Students
.Include(x => x.Phones)
.Include(x => x.Address)
.Include(x => x.AssignedCourses)
.SingleAsync(x => x.Id == id);
}
}
}