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();
}
using var context = new FlowerShopDatabase();
if (model.Id.HasValue)
return context.Orders.Where(x => x.Id == model.Id).Select(x => AccessFlowerStorage(x.GetViewModel)).ToList();
if (model.ClientId.HasValue)
return context.Orders.Where(x => x.ClientId == model.ClientId).Select(x => AccessFlowerStorage(x.GetViewModel)).ToList();
return context.Orders.Where(x => x.DateCreate >= model.DateFrom).Where(x => x.DateCreate <= model.DateTo).
Select(x => AccessFlowerStorage(x.GetViewModel)).ToList();
if (model.DateFrom.HasValue)
return context.Orders
.Where(x => (x.DateCreate >= model.DateFrom && x.DateCreate <= model.DateTo)
&& (!model.ClientId.HasValue || x.ClientId == model.ClientId))
.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)
{

View File

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

View File

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

View File

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