фильтрация всего
This commit is contained in:
@@ -40,14 +40,18 @@ namespace SoftwareDataBase.Repository
|
||||
|
||||
public List<TestViewModel> GetFilteredList(TestSearchModel model)
|
||||
{
|
||||
if (!model.Id.HasValue && !model.TestStatus.HasValue && !model.DateFrom.HasValue && !model.DateTo.HasValue)
|
||||
{
|
||||
return new List<TestViewModel>();
|
||||
}
|
||||
using var context = new SoftwareDateBase();
|
||||
var query = context.Tests.Include(x => x.Project).AsQueryable();
|
||||
|
||||
// Постепенное применение фильтров
|
||||
|
||||
if (model.ProjectId.HasValue)
|
||||
// Применяем фильтры только если указаны соответствующие критерии
|
||||
if (model.Id.HasValue)
|
||||
{
|
||||
query = query.Where(x => x.ProjectId == model.ProjectId.Value);
|
||||
query = query.Where(x => x.Id == model.Id.Value);
|
||||
}
|
||||
|
||||
if (model.TestStatus.HasValue)
|
||||
@@ -55,10 +59,14 @@ namespace SoftwareDataBase.Repository
|
||||
query = query.Where(x => x.TestStatus == model.TestStatus.Value);
|
||||
}
|
||||
|
||||
// Если не указано ни одного критерия - возвращаем пустой список
|
||||
if (!model.ProjectId.HasValue && !model.TestStatus.HasValue)
|
||||
if (model.DateFrom.HasValue)
|
||||
{
|
||||
return new List<TestViewModel>();
|
||||
query = query.Where(x => x.CreatedDate >= model.DateFrom.Value);
|
||||
}
|
||||
|
||||
if (model.DateTo.HasValue)
|
||||
{
|
||||
query = query.Where(x => x.CreatedDate <= model.DateTo.Value);
|
||||
}
|
||||
|
||||
return query
|
||||
|
||||
Reference in New Issue
Block a user