diff --git a/CarCenter/CarCenterContracts/SearchModels/OrderSearchModel.cs b/CarCenter/CarCenterContracts/SearchModels/OrderSearchModel.cs index 9087f3a..51c09cc 100644 --- a/CarCenter/CarCenterContracts/SearchModels/OrderSearchModel.cs +++ b/CarCenter/CarCenterContracts/SearchModels/OrderSearchModel.cs @@ -1,4 +1,5 @@ -using System; +using CarCenterDataModels.Models; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -9,5 +10,8 @@ namespace CarCenterContracts.SearchModels public class OrderSearchModel { public int? Id { get; set; } - } + public List Presales { get; set; } = new(); + public DateTime? DateFrom { get; set; } + public DateTime? DateTo { get; set; } + } } diff --git a/CarCenter/CarCenterDatabaseImplement/Implements/OrderStorage.cs b/CarCenter/CarCenterDatabaseImplement/Implements/OrderStorage.cs index 1b154a0..0fe2fd8 100644 --- a/CarCenter/CarCenterDatabaseImplement/Implements/OrderStorage.cs +++ b/CarCenter/CarCenterDatabaseImplement/Implements/OrderStorage.cs @@ -54,7 +54,35 @@ namespace CarCenterDatabaseImplement.Implements public List GetFilteredList(OrderSearchModel model) { using var context = new CarCenterDatabase(); - if (model.Id.HasValue) + + if (model.DateFrom.HasValue && model.DateTo.HasValue) //для отчета + { + return context.Orders + .Include(x => x.Worker) + .Include(x => x.Cars) + .Include(x => x.Presales) + .ThenInclude(x => x.Presale) + .ThenInclude(x => x.Requests) + .Include(x => x.Presales) + .ThenInclude(x => x.Presale) + .ThenInclude(x => x.Bundlings) + .ThenInclude(x => x.Bundling) + .Where(x => x.PaymentDate >= model.DateFrom && x.PaymentDate <= model.DateTo) + .Select(x => x.GetViewModel) + .ToList(); + } + else if (model.Presales.Count > 0) //для отчета + { + return context.Orders + .Include(x => x.Worker) + .Include(x => x.Cars) + .Include(x => x.Presales) + .ThenInclude(x => x.Presale) + .Where(x => x.OrderPresales.Any(p => model.Presales.Any(presale => p.Value == presale))) + .Select(x => x.GetViewModel) + .ToList(); + } + else if (model.Id.HasValue) { return context.Orders .Include(x => x.Worker)