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.StoragesContracts;
using SushiBarContracts.ViewModels; using SushiBarContracts.ViewModels;
using SushiBarFileImplement.Models; using SushiBarFileImplement.Models;
using System.Linq;
namespace SushiBarFileImplement.Implements namespace SushiBarFileImplement.Implements
{ {
@ -21,17 +22,22 @@ namespace SushiBarFileImplement.Implements
public List<OrderViewModel> GetFilteredList(OrderSearchModel model) public List<OrderViewModel> GetFilteredList(OrderSearchModel model)
{ {
if (model.DateFrom.HasValue) if (model.DateFrom.HasValue && model.DateTo.HasValue)
return source.Orders return source.Orders
.Where(x => x.DateCreate >= model.DateFrom && x.DateCreate <= model.DateTo) .Where(x => x.DateCreate >= model.DateFrom && x.DateCreate <= model.DateTo)
.Select(x => GetViewModel(x)) .Select(x => GetViewModel(x))
.ToList(); .ToList();
if (model.ClientId.HasValue && !model.Id.HasValue) else if (model.ClientId.HasValue && !model.Id.HasValue)
return source.Orders return source.Orders
.Where(x => x.ClientId == model.ClientId) .Where(x => x.ClientId == model.ClientId)
.Select(x => x.GetViewModel) .Select(x => x.GetViewModel)
.ToList(); .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 return source.Orders
.Where(x => x.Id.Equals(model.Id)) .Where(x => x.Id.Equals(model.Id))
.Select(x => GetViewModel(x)) .Select(x => GetViewModel(x))
@ -41,14 +47,25 @@ namespace SushiBarFileImplement.Implements
public OrderViewModel? GetElement(OrderSearchModel model) public OrderViewModel? GetElement(OrderSearchModel model)
{ {
if (!model.Id.HasValue) if (model.Id.HasValue)
{ {
return source.Orders.FirstOrDefault(x => 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; return null;
} }
return source.Orders.FirstOrDefault(x =>
(model.Id.HasValue && x.Id == model.Id))?.GetViewModel;
}
private OrderViewModel GetViewModel(Order order) private OrderViewModel GetViewModel(Order order)
{ {
var viewModel = order.GetViewModel; var viewModel = order.GetViewModel;
@ -57,13 +74,18 @@ namespace SushiBarFileImplement.Implements
.ListSushi.FirstOrDefault(x => x.Id == order.SushiId); .ListSushi.FirstOrDefault(x => x.Id == order.SushiId);
var client = source var client = source
.Clients.FirstOrDefault(x => x.Id == order.ClientId); .Clients.FirstOrDefault(x => x.Id == order.ClientId);
var implementer = source
.Implementers.FirstOrDefault(x => x.Id == order.ImplementerId);
if (sushi != null) if (sushi != null)
viewModel.SushiName = sushi.SushiName; viewModel.SushiName = sushi.SushiName;
if (client != null) if (client != null)
viewModel.ClientFIO = client.ClientFIO; viewModel.ClientFIO = client.ClientFIO;
if (implementer != null)
viewModel.ImplementerFIO = implementer.ImplementerFIO;
return viewModel; return viewModel;
} }
public OrderViewModel? Insert(OrderBindingModel model) public OrderViewModel? Insert(OrderBindingModel model)
{ {
model.Id = source.Orders.Count > 0 ? source.Orders.Max(x => x.Id) + 1 : 1; 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 Id { get; private set; }
public int ClientId { get; private set; } public int ClientId { get; private set; }
public int? ImplementerId { get; private set; }
public int SushiId { get; private set; } public int SushiId { get; private set; }
public int Count { get; private set; } public int Count { get; private set; }
public double Sum { get; private set; } public double Sum { get; private set; }
@ -27,6 +28,7 @@ namespace SushiBarFileImplement.Models
Id = model.Id, Id = model.Id,
SushiId = model.SushiId, SushiId = model.SushiId,
ClientId = model.ClientId, ClientId = model.ClientId,
ImplementerId = model.ImplementerId,
Count = model.Count, Count = model.Count,
Sum = model.Sum, Sum = model.Sum,
Status = model.Status, Status = model.Status,
@ -46,6 +48,7 @@ namespace SushiBarFileImplement.Models
Id = Convert.ToInt32(element.Attribute("Id")!.Value), Id = Convert.ToInt32(element.Attribute("Id")!.Value),
SushiId = Convert.ToInt32(element.Element("SushiId")!.Value), SushiId = Convert.ToInt32(element.Element("SushiId")!.Value),
ClientId = Convert.ToInt32(element.Element("ClientId")!.Value), ClientId = Convert.ToInt32(element.Element("ClientId")!.Value),
ImplementerId = Convert.ToInt32(element.Element("ImplementerId")!.Value),
Sum = Convert.ToDouble(element.Element("Sum")!.Value), Sum = Convert.ToDouble(element.Element("Sum")!.Value),
Count = Convert.ToInt32(element.Element("Count")!.Value), Count = Convert.ToInt32(element.Element("Count")!.Value),
Status = (OrderStatus)Enum.Parse(typeof(OrderStatus), element.Element("Status")!.Value), Status = (OrderStatus)Enum.Parse(typeof(OrderStatus), element.Element("Status")!.Value),
@ -62,12 +65,14 @@ namespace SushiBarFileImplement.Models
} }
Status = model.Status; Status = model.Status;
DateImplement = model.DateImplement; DateImplement = model.DateImplement;
ImplementerId = model.ImplementerId;
} }
public OrderViewModel GetViewModel => new() public OrderViewModel GetViewModel => new()
{ {
SushiId = SushiId, SushiId = SushiId,
ClientId = ClientId, ClientId = ClientId,
ImplementerId = ImplementerId,
Count = Count, Count = Count,
Sum = Sum, Sum = Sum,
DateCreate = DateCreate, DateCreate = DateCreate,
@ -80,6 +85,7 @@ namespace SushiBarFileImplement.Models
new XAttribute("Id", Id), new XAttribute("Id", Id),
new XElement("SushiId", SushiId), new XElement("SushiId", SushiId),
new XElement("ClientId", ClientId), new XElement("ClientId", ClientId),
new XElement("ImplementerId", ImplementerId),
new XElement("Count", Count.ToString()), new XElement("Count", Count.ToString()),
new XElement("Sum", Sum.ToString()), new XElement("Sum", Sum.ToString()),
new XElement("Status", Status.ToString()), new XElement("Status", Status.ToString()),

View File

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