Switched from IEnumerable to Queryable DBsets for filtering

This commit is contained in:
Nicolai Ort 2020-06-18 15:27:40 +02:00
parent 8a26b957aa
commit 1298b01974
7 changed files with 23 additions and 18 deletions

View File

@ -22,7 +22,8 @@ namespace ScrumTaskboard.Controllers
[HttpGet]
public async Task<ActionResult<IEnumerable<ScrumCategory>>> GetCategory()
{
IEnumerable<ScrumCategory> filtered = _context.Categories;
var filtered = _context.Categories.AsQueryable();
if (HttpContext.Request.Query["title"].ToString() != "")
{
filtered = filtered.Where<ScrumCategory>(c => c.title.Contains(HttpContext.Request.Query["title"].ToString()));
@ -37,8 +38,7 @@ namespace ScrumTaskboard.Controllers
}
return filtered.ToList();
return await filtered.ToListAsync();
}
// GET: api/category/1

View File

@ -22,7 +22,8 @@ namespace ScrumTaskboard.Controllers
[HttpGet]
public async Task<ActionResult<IEnumerable<ScrumProject>>> GetProject()
{
IEnumerable<ScrumProject> filtered = _context.Projects;
var filtered = _context.Projects.AsQueryable();
if (HttpContext.Request.Query["title"].ToString() != "")
{
filtered = filtered.Where<ScrumProject>(t => t.title.Contains(HttpContext.Request.Query["title"].ToString()));
@ -32,7 +33,7 @@ namespace ScrumTaskboard.Controllers
filtered = filtered.Where<ScrumProject>(t => t.isprivate == Convert.ToBoolean(HttpContext.Request.Query["isprivate"]));
}
return filtered.ToList();
return await filtered.ToListAsync();
}
// GET: api/projects/5

View File

@ -22,7 +22,8 @@ namespace ScrumTaskboard.Controllers
[HttpGet]
public async Task<ActionResult<IEnumerable<ScrumSprint>>> GetSprint()
{
IEnumerable<ScrumSprint> filtered = _context.Sprints;
var filtered = _context.Sprints.AsQueryable();
if (HttpContext.Request.Query["title"].ToString() != "")
{
filtered = filtered.Where<ScrumSprint>(s => s.title.Contains(HttpContext.Request.Query["title"].ToString()));
@ -40,7 +41,7 @@ namespace ScrumTaskboard.Controllers
filtered = filtered.Where<ScrumSprint>(s => s.endDate == DateTime.Parse(HttpContext.Request.Query["startDate"].ToString()));
}
return filtered.ToList();
return await filtered.ToListAsync();
}
// GET: api/sprint/5

View File

@ -21,13 +21,14 @@ namespace ScrumTaskboard.Controllers
[HttpGet]
public async Task<ActionResult<IEnumerable<ScrumStatus>>> GetStatus()
{
IEnumerable<ScrumStatus> filtered = _context.Status;
var filtered = _context.Status.AsQueryable();
if (HttpContext.Request.Query["title"].ToString() != "")
{
filtered = filtered.Where<ScrumStatus>(s => s.title.Contains(HttpContext.Request.Query["title"].ToString()));
}
return filtered.ToList();
return await filtered.ToListAsync();
}
// GET: api/status/1

View File

@ -22,7 +22,8 @@ namespace ScrumTaskboard.Controllers
[HttpGet]
public async Task<ActionResult<IEnumerable<ScrumTask>>> GetTasks()
{
IEnumerable<ScrumTask> filtered = _context.Tasks;
var filtered = _context.Tasks.AsQueryable();
if (HttpContext.Request.Query["title"].ToString() != "")
{
filtered = filtered.Where<ScrumTask>(t => t.title.Contains(HttpContext.Request.Query["title"].ToString()));
@ -52,10 +53,10 @@ namespace ScrumTaskboard.Controllers
ScrumPrio priority;
Enum.TryParse<ScrumPrio>(HttpContext.Request.Query["priority"].ToString(), out priority);
filtered = filtered.Where<ScrumTask>(t => t.priority == priority);
}
return filtered.ToList();
}
return await filtered.ToListAsync();
}
// GET: api/tasks/5

View File

@ -21,13 +21,13 @@ namespace ScrumTaskboard.Controllers
[HttpGet]
public async Task<ActionResult<IEnumerable<ScrumUser>>> GetUser()
{
IEnumerable<ScrumUser> filtered = _context.Users;
var filtered = _context.Users.AsQueryable();
if (HttpContext.Request.Query["name"].ToString() != "")
{
filtered = filtered.Where<ScrumUser>(u => u.name.Contains(HttpContext.Request.Query["name"].ToString()));
}
return filtered.ToList();
return await filtered.ToListAsync();
}
// GET: api/sprint/5

View File

@ -22,7 +22,8 @@ namespace ScrumTaskboard.Controllers
[HttpGet]
public async Task<ActionResult<IEnumerable<ScrumUserstory>>> GetUserstory()
{
IEnumerable<ScrumUserstory> filtered = _context.Userstories;
var filtered = _context.Userstories.AsQueryable();
if (HttpContext.Request.Query["title"].ToString() != "")
{
filtered = filtered.Where<ScrumUserstory>(t => t.title.Contains(HttpContext.Request.Query["title"].ToString()));
@ -55,7 +56,7 @@ namespace ScrumTaskboard.Controllers
}
return filtered.ToList();
return await filtered.ToListAsync();
}
// GET: api/userstories/1