diff --git a/ConfectionaryFileImplement/OrderStorage.cs b/ConfectionaryFileImplement/OrderStorage.cs index ecd3a9b..160eae9 100644 --- a/ConfectionaryFileImplement/OrderStorage.cs +++ b/ConfectionaryFileImplement/OrderStorage.cs @@ -28,6 +28,13 @@ namespace ConfectioneryFileImplement public OrderViewModel? GetElement(OrderSearchModel model) { + if (model.ImplementerId.HasValue && model.Statusses != null) + { + return _source.Orders + .FirstOrDefault(x => x.ImplementerId == model.ImplementerId && + model.Statusses.Contains(x.Status)) + ?.GetViewModel; + } if (model.ImplementerId.HasValue) { return _source.Orders.FirstOrDefault(x => x.ImplementerId == model.ImplementerId)?.GetViewModel; @@ -55,10 +62,10 @@ namespace ConfectioneryFileImplement .Select(x => x.GetViewModel) .ToList(); } - if (!model.Id.HasValue && model.Status.HasValue) + if (!model.Id.HasValue && model.Statusses != null) { return _source.Orders - .Where(x => x.Status == model.Status) + .Where(x => model.Statusses.Contains(x.Status)) .Select(x => x.GetViewModel) .ToList(); } diff --git a/ConfectionaryListImplement/OrderStorage.cs b/ConfectionaryListImplement/OrderStorage.cs index 7159bf2..43fd901 100644 --- a/ConfectionaryListImplement/OrderStorage.cs +++ b/ConfectionaryListImplement/OrderStorage.cs @@ -30,7 +30,14 @@ namespace ConfectioneryListImplement public OrderViewModel? GetElement(OrderSearchModel model) { - if (model.ImplementerId.HasValue) + if (model.ImplementerId.HasValue && model.Statusses != null) + { + return _source.Orders + .FirstOrDefault(x => x.ImplementerId == model.ImplementerId && + model.Statusses.Contains(x.Status)) + ?.GetViewModel; + } + if (model.ImplementerId.HasValue) { return _source.Orders.FirstOrDefault(x => x.ImplementerId == model.ImplementerId)?.GetViewModel; } @@ -65,10 +72,10 @@ namespace ConfectioneryListImplement .Select(x => x.GetViewModel) .ToList(); } - if (!model.Id.HasValue && model.Status.HasValue) + if (!model.Id.HasValue && model.Statusses != null) { return _source.Orders - .Where(x => x.Status == model.Status) + .Where(x => model.Statusses.Contains(x.Status)) .Select(x => x.GetViewModel) .ToList(); } diff --git a/ConfectioneryContracts/SearchModels/OrderSearchModel.cs b/ConfectioneryContracts/SearchModels/OrderSearchModel.cs index 606260e..a593019 100644 --- a/ConfectioneryContracts/SearchModels/OrderSearchModel.cs +++ b/ConfectioneryContracts/SearchModels/OrderSearchModel.cs @@ -14,6 +14,6 @@ namespace ConfectioneryContracts.SearchModels public int? ImplementerId { get; set; } - public OrderStatus? Status { get; set; } + public List? Statusses { get; set; } } } diff --git a/ConfectioneryDatabaseImplement/OrderStorage.cs b/ConfectioneryDatabaseImplement/OrderStorage.cs index 14ef8b7..f1e161d 100644 --- a/ConfectioneryDatabaseImplement/OrderStorage.cs +++ b/ConfectioneryDatabaseImplement/OrderStorage.cs @@ -33,7 +33,7 @@ namespace ConfectioneryDatabaseImplement.Implements .Include(x => x.Client) .Include(x => x.Implementer) .FirstOrDefault(x => - (!model.Status.HasValue || model.Status.HasValue && x.Status == model.Status) && + (model.Statusses == null || model.Statusses != null && model.Statusses.Contains(x.Status)) && model.ImplementerId.HasValue && x.ImplementerId == model.ImplementerId || model.Id.HasValue && x.Id == model.Id ) @@ -57,9 +57,9 @@ namespace ConfectioneryDatabaseImplement.Implements .Where(x => model.DateFrom <= x.DateCreate.Date && x.DateCreate.Date <= model.DateTo); } - else if (model.Status.HasValue) + else if (model.Statusses != null) { - queryWhere = context.Orders.Where(x => x.Status == model.Status); + queryWhere = context.Orders.Where(x => model.Statusses.Contains(x.Status)); } else if (model.ClientId.HasValue) {