fix GetFilteredList methods

This commit is contained in:
DavidMakarov 2024-04-18 19:47:00 +04:00
parent 8d16b12e86
commit 4c4689f94c
4 changed files with 44 additions and 50 deletions

View File

@ -22,12 +22,15 @@ namespace FlowerShopDatabaseImplement.Implements
return new(); return new();
} }
using var context = new FlowerShopDatabase(); using var context = new FlowerShopDatabase();
if (model.Id.HasValue) if (model.DateFrom.HasValue)
return context.Orders.Where(x => x.Id == model.Id).Select(x => AccessFlowerStorage(x.GetViewModel)).ToList(); return context.Orders
if (model.ClientId.HasValue) .Where(x => (x.DateCreate >= model.DateFrom && x.DateCreate <= model.DateTo)
return context.Orders.Where(x => x.ClientId == model.ClientId).Select(x => AccessFlowerStorage(x.GetViewModel)).ToList(); && (!model.ClientId.HasValue || x.ClientId == model.ClientId))
return context.Orders.Where(x => x.DateCreate >= model.DateFrom).Where(x => x.DateCreate <= model.DateTo). .Select(x => AccessFlowerStorage(x.GetViewModel)).ToList();
Select(x => AccessFlowerStorage(x.GetViewModel)).ToList(); return context.Orders
.Where(x => (model.Id.HasValue && x.Id == model.Id)
|| (model.ClientId.HasValue && x.ClientId == model.ClientId))
.Select(x => AccessFlowerStorage(x.GetViewModel)).ToList();
} }
public OrderViewModel? GetElement(OrderSearchModel model) public OrderViewModel? GetElement(OrderSearchModel model)
{ {

View File

@ -19,15 +19,18 @@ namespace FlowerShopFileImplement.Implements
} }
public List<OrderViewModel> GetFilteredList(OrderSearchModel model) public List<OrderViewModel> GetFilteredList(OrderSearchModel model)
{ {
if (model.Id.HasValue) if (model.DateFrom.HasValue)
return source.Orders.Where(x => x.Id == model.Id) {
.Select(x => GetViewModel(x)) return source.Orders
.ToList(); .Where(x => (x.DateCreate >= model.DateFrom && x.DateCreate <= model.DateTo) && (!model.ClientId.HasValue || x.ClientId == model.ClientId))
if (model.ClientId.HasValue) .Select(GetViewModel)
return source.Orders.Where(x => x.ClientId == model.ClientId).Select(x => GetViewModel(x)).ToList(); .ToList();
return source.Orders.Where(x => x.DateCreate >= model.DateFrom).Where(x => x.DateCreate <= model.DateTo). }
Select(x => GetViewModel(x)).ToList(); return source.Orders
} .Where(x => (model.Id.HasValue && x.Id == model.Id) || (model.ClientId.HasValue && x.ClientId == model.ClientId))
.Select(GetViewModel)
.ToList();
}
public OrderViewModel? GetElement(OrderSearchModel model) public OrderViewModel? GetElement(OrderSearchModel model)
{ {
if (!model.Id.HasValue) if (!model.Id.HasValue)

View File

@ -3,6 +3,7 @@ using FlowerShopContracts.SearchModels;
using FlowerShopContracts.StoragesContracts; using FlowerShopContracts.StoragesContracts;
using FlowerShopContracts.ViewModels; using FlowerShopContracts.ViewModels;
using FlowerShopListImplement.Models; using FlowerShopListImplement.Models;
using System.Reflection;
namespace FlowerShopListImplement.Implements namespace FlowerShopListImplement.Implements
{ {
@ -24,39 +25,26 @@ namespace FlowerShopListImplement.Implements
} }
public List<OrderViewModel> GetFilteredList(OrderSearchModel model) public List<OrderViewModel> GetFilteredList(OrderSearchModel model)
{ {
var result = new List<OrderViewModel>(); if (model.DateFrom.HasValue)
if (model == null || !model.Id.HasValue) {
{ return _source.Orders
return result; .Where(x => (x.DateCreate >= model.DateFrom && x.DateCreate <= model.DateTo) && (!model.ClientId.HasValue || x.ClientId == model.ClientId))
} .Select(x => AttachNames(x.GetViewModel))
if (model.ClientId.HasValue) .ToList();
{
foreach (var order in _source.Orders)
{
if (order.Id == model.Id && order.ClientId == model.ClientId)
{
result.Add(AttachNames(order.GetViewModel));
}
}
return result;
} }
foreach (var order in _source.Orders) return _source.Orders
{ .Where(x => (model.Id.HasValue && x.Id == model.Id) || (model.ClientId.HasValue && x.ClientId == model.ClientId))
if (order.Id == model.Id && order.DateCreate >= model.DateFrom && order.DateCreate <= model.DateTo) .Select(x => AttachNames(x.GetViewModel))
{ .ToList();
result.Add(AttachNames(order.GetViewModel)); }
} public OrderViewModel? GetElement(OrderSearchModel model)
} {
return result; if (!model.Id.HasValue)
} {
public OrderViewModel? GetElement(OrderSearchModel model) return null;
{ }
if (!model.Id.HasValue) foreach (var order in _source.Orders)
{ {
return null;
}
foreach (var order in _source.Orders)
{
if (model.Id.HasValue && order.Id == model.Id) if (model.Id.HasValue && order.Id == model.Id)
{ {
return AttachNames(order.GetViewModel); return AttachNames(order.GetViewModel);

View File

@ -50,14 +50,14 @@ namespace FlowerShopRestApi.Controllers
} }
} }
[HttpGet] [HttpGet]
public List<OrderViewModel>? GetOrders(int clientId) public List<OrderViewModel>? GetOrders(int? clientId)
{ {
try try
{ {
return _order.ReadList(new OrderSearchModel return _order.ReadList(clientId != null ? new OrderSearchModel
{ {
ClientId = clientId ClientId = clientId
}); } : null);
} }
catch (Exception ex) catch (Exception ex)
{ {