vrode vse

This commit is contained in:
dasha 2023-04-11 00:20:00 +04:00
parent f6be017910
commit 9e7b7de847
3 changed files with 37 additions and 8 deletions

View File

@ -3,6 +3,7 @@ using SushiBarContracts.SearchModels;
using SushiBarContracts.StoragesContracts;
using SushiBarContracts.ViewModels;
using SushiBarFileImplement.Models;
using System.Linq;
namespace SushiBarFileImplement.Implements
{
@ -21,17 +22,22 @@ namespace SushiBarFileImplement.Implements
public List<OrderViewModel> GetFilteredList(OrderSearchModel model)
{
if (model.DateFrom.HasValue)
if (model.DateFrom.HasValue && model.DateTo.HasValue)
return source.Orders
.Where(x => x.DateCreate >= model.DateFrom && x.DateCreate <= model.DateTo)
.Select(x => GetViewModel(x))
.ToList();
if (model.ClientId.HasValue && !model.Id.HasValue)
else if (model.ClientId.HasValue && !model.Id.HasValue)
return source.Orders
.Where(x => x.ClientId == model.ClientId)
.Select(x => x.GetViewModel)
.ToList();
if (model.Id.HasValue)
else if (model.OrderStatus.HasValue)
return source.Orders
.Where(x => x.Status == model.OrderStatus)
.Select(x => x.GetViewModel)
.ToList();
else if (model.Id.HasValue)
return source.Orders
.Where(x => x.Id.Equals(model.Id))
.Select(x => GetViewModel(x))
@ -41,14 +47,25 @@ namespace SushiBarFileImplement.Implements
public OrderViewModel? GetElement(OrderSearchModel model)
{
if (!model.Id.HasValue)
if (model.Id.HasValue)
{
return null;
return source.Orders.FirstOrDefault(x => x.Id == model.Id)?.GetViewModel;
}
return source.Orders.FirstOrDefault(x =>
(model.Id.HasValue && x.Id == model.Id))?.GetViewModel;
else if (model.ImplementerId.HasValue && model.OrderStatus.HasValue)
{
return source.Orders
.FirstOrDefault(x => x.ImplementerId == model.ImplementerId && x.Status == model.OrderStatus)
?.GetViewModel;
}
else if (model.ImplementerId.HasValue)
{
return source.Orders
.FirstOrDefault(x => x.ImplementerId == model.ImplementerId)
?.GetViewModel;
}
return null;
}
private OrderViewModel GetViewModel(Order order)
{
var viewModel = order.GetViewModel;
@ -57,13 +74,18 @@ namespace SushiBarFileImplement.Implements
.ListSushi.FirstOrDefault(x => x.Id == order.SushiId);
var client = source
.Clients.FirstOrDefault(x => x.Id == order.ClientId);
var implementer = source
.Implementers.FirstOrDefault(x => x.Id == order.ImplementerId);
if (sushi != null)
viewModel.SushiName = sushi.SushiName;
if (client != null)
viewModel.ClientFIO = client.ClientFIO;
if (implementer != null)
viewModel.ImplementerFIO = implementer.ImplementerFIO;
return viewModel;
}
public OrderViewModel? Insert(OrderBindingModel model)
{
model.Id = source.Orders.Count > 0 ? source.Orders.Max(x => x.Id) + 1 : 1;

View File

@ -10,6 +10,7 @@ namespace SushiBarFileImplement.Models
{
public int Id { get; private set; }
public int ClientId { get; private set; }
public int? ImplementerId { get; private set; }
public int SushiId { get; private set; }
public int Count { get; private set; }
public double Sum { get; private set; }
@ -27,6 +28,7 @@ namespace SushiBarFileImplement.Models
Id = model.Id,
SushiId = model.SushiId,
ClientId = model.ClientId,
ImplementerId = model.ImplementerId,
Count = model.Count,
Sum = model.Sum,
Status = model.Status,
@ -46,6 +48,7 @@ namespace SushiBarFileImplement.Models
Id = Convert.ToInt32(element.Attribute("Id")!.Value),
SushiId = Convert.ToInt32(element.Element("SushiId")!.Value),
ClientId = Convert.ToInt32(element.Element("ClientId")!.Value),
ImplementerId = Convert.ToInt32(element.Element("ImplementerId")!.Value),
Sum = Convert.ToDouble(element.Element("Sum")!.Value),
Count = Convert.ToInt32(element.Element("Count")!.Value),
Status = (OrderStatus)Enum.Parse(typeof(OrderStatus), element.Element("Status")!.Value),
@ -62,12 +65,14 @@ namespace SushiBarFileImplement.Models
}
Status = model.Status;
DateImplement = model.DateImplement;
ImplementerId = model.ImplementerId;
}
public OrderViewModel GetViewModel => new()
{
SushiId = SushiId,
ClientId = ClientId,
ImplementerId = ImplementerId,
Count = Count,
Sum = Sum,
DateCreate = DateCreate,
@ -80,6 +85,7 @@ namespace SushiBarFileImplement.Models
new XAttribute("Id", Id),
new XElement("SushiId", SushiId),
new XElement("ClientId", ClientId),
new XElement("ImplementerId", ImplementerId),
new XElement("Count", Count.ToString()),
new XElement("Sum", Sum.ToString()),
new XElement("Status", Status.ToString()),

View File

@ -15,6 +15,7 @@ namespace SushiBarListImplement.Models
public int WorkExperience { get; private set; }
public int Qualification { get; private set; }
public static Implementer? Create(ImplementerBindingModel? model)
{
if (model == null)