Добавлено новое поле "ClientId" в сущность Заказ

This commit is contained in:
Данияр Аглиуллов 2023-03-04 15:03:40 +04:00
parent 9687d18450
commit 1bb8c060cb
10 changed files with 56 additions and 4 deletions

View File

@ -12,6 +12,9 @@ namespace ConfectioneryFileImplement.Models
public int PastryId { get; private set; } public int PastryId { get; private set; }
public int ClientId { get; 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; }
@ -31,6 +34,7 @@ namespace ConfectioneryFileImplement.Models
return new Order() return new Order()
{ {
PastryId = model.PastryId, PastryId = model.PastryId,
ClientId = model.ClientId,
Count = model.Count, Count = model.Count,
Sum = model.Sum, Sum = model.Sum,
Status = model.Status, Status = model.Status,
@ -53,6 +57,7 @@ namespace ConfectioneryFileImplement.Models
Count = Convert.ToInt32(element.Element("Count")!.Value), Count = Convert.ToInt32(element.Element("Count")!.Value),
Status = (OrderStatus)Convert.ToInt32(element.Element("Status")!.Value), Status = (OrderStatus)Convert.ToInt32(element.Element("Status")!.Value),
PastryId = Convert.ToInt32(element.Element("PastryId")!.Value), PastryId = Convert.ToInt32(element.Element("PastryId")!.Value),
ClientId = Convert.ToInt32(element.Element("ClientId")!.Value),
DateCreate = Convert.ToDateTime(element.Element("DateCreate")!.Value), DateCreate = Convert.ToDateTime(element.Element("DateCreate")!.Value),
DateImplement = string.IsNullOrEmpty(dateImplement) ? null : Convert.ToDateTime(dateImplement), DateImplement = string.IsNullOrEmpty(dateImplement) ? null : Convert.ToDateTime(dateImplement),
}; };
@ -75,7 +80,9 @@ namespace ConfectioneryFileImplement.Models
public OrderViewModel GetViewModel => new() public OrderViewModel GetViewModel => new()
{ {
PastryName = DataFileSingleton.GetInstance().Pastries.FirstOrDefault(x => x.Id == PastryId)?.PastryName ?? string.Empty, PastryName = DataFileSingleton.GetInstance().Pastries.FirstOrDefault(x => x.Id == PastryId)?.PastryName ?? string.Empty,
ClientFIO = DataFileSingleton.GetInstance().Clients.FirstOrDefault(x => x.Id == ClientId)?.ClientFIO ?? string.Empty,
PastryId = PastryId, PastryId = PastryId,
ClientId = ClientId,
Count = Count, Count = Count,
Sum = Sum, Sum = Sum,
Status = Status, Status = Status,
@ -86,6 +93,7 @@ namespace ConfectioneryFileImplement.Models
public XElement GetXElement => new("Order", public XElement GetXElement => new("Order",
new XAttribute("Id", Id), new XAttribute("Id", Id),
new XElement("PastryId", PastryId), new XElement("PastryId", PastryId),
new XElement("ClientId", ClientId),
new XElement("Count", Count), new XElement("Count", Count),
new XElement("Sum", Sum.ToString()), new XElement("Sum", Sum.ToString()),
new XElement("Status", (int)Status), new XElement("Status", (int)Status),

View File

@ -44,6 +44,13 @@ namespace ConfectioneryFileImplement
.Select(x => x.GetViewModel) .Select(x => x.GetViewModel)
.ToList(); .ToList();
} }
if (!model.Id.HasValue && model.ClientId.HasValue)
{
return _source.Orders
.Where(x => x.ClientId == model.ClientId)
.Select(x => x.GetViewModel)
.ToList();
}
var result = GetElement(model); var result = GetElement(model);
return result != null ? new() { result } : new(); return result != null ? new() { result } : new();
} }

View File

@ -11,6 +11,8 @@ namespace ConfectioneryListImplement.Models
public int PastryId { get; private set; } public int PastryId { get; private set; }
public int ClientId { 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; }
@ -30,6 +32,7 @@ namespace ConfectioneryListImplement.Models
return new Order() return new Order()
{ {
PastryId = model.PastryId, PastryId = model.PastryId,
ClientId = model.ClientId,
Count = model.Count, Count = model.Count,
Sum = model.Sum, Sum = model.Sum,
Status = model.Status, Status = model.Status,
@ -55,6 +58,8 @@ namespace ConfectioneryListImplement.Models
public OrderViewModel GetViewModel => new() public OrderViewModel GetViewModel => new()
{ {
PastryId = PastryId, PastryId = PastryId,
ClientFIO = DataListSingleton.GetInstance().Clients.FirstOrDefault(x => x.Id == ClientId)?.ClientFIO ?? string.Empty,
ClientId = ClientId,
Count = Count, Count = Count,
Sum = Sum, Sum = Sum,
Status = Status, Status = Status,

View File

@ -54,6 +54,13 @@ namespace ConfectioneryListImplement
.Select(x => x.GetViewModel) .Select(x => x.GetViewModel)
.ToList(); .ToList();
} }
if (!model.Id.HasValue && model.ClientId.HasValue)
{
return _source.Orders
.Where(x => x.ClientId == model.ClientId)
.Select(x => x.GetViewModel)
.ToList();
}
foreach (var order in _source.Orders) foreach (var order in _source.Orders)
{ {
if (order.Id == model.Id) if (order.Id == model.Id)

View File

@ -7,6 +7,7 @@ namespace ConfectioneryContracts.BindingModels
{ {
public int Id { get; set; } public int Id { get; set; }
public int PastryId { get; set; } public int PastryId { get; set; }
public int ClientId { get; set; }
public int Count { get; set; } public int Count { get; set; }
public double Sum { get; set; } public double Sum { get; set; }
public OrderStatus Status { get; set; } = OrderStatus.Неизвестен; public OrderStatus Status { get; set; } = OrderStatus.Неизвестен;

View File

@ -7,5 +7,7 @@
public DateTime? DateFrom { get; set; } public DateTime? DateFrom { get; set; }
public DateTime? DateTo { get; set; } public DateTime? DateTo { get; set; }
public int? ClientId { get; set; }
} }
} }

View File

@ -15,6 +15,11 @@ namespace ConfectioneryContracts.ViewModels
public int Id { get; set; } public int Id { get; set; }
public int PastryId { get; set; } public int PastryId { get; set; }
public int ClientId { get; set; }
[DisplayName("Фамилия клиента")]
public string ClientFIO { get; set; } = string.Empty;
[DisplayName("Изделие")] [DisplayName("Изделие")]
public string PastryName { get; set; } = string.Empty; public string PastryName { get; set; } = string.Empty;

View File

@ -5,6 +5,7 @@ namespace ConfectioneryDataModels.Models
public interface IOrderModel : IId public interface IOrderModel : IId
{ {
int PastryId { get; } int PastryId { get; }
int ClientId { get; }
int Count { get; } int Count { get; }
double Sum { get; } double Sum { get; }
OrderStatus Status { get; } OrderStatus Status { get; }

View File

@ -21,6 +21,9 @@ namespace ConfectioneryDatabaseImplement.Models
[Required] [Required]
public int PastryId { get; private set; } public int PastryId { get; private set; }
[Required]
public int ClientId { get; private set; }
[Required] [Required]
public int Count { get; private set; } public int Count { get; private set; }
@ -49,6 +52,7 @@ namespace ConfectioneryDatabaseImplement.Models
return new Order() return new Order()
{ {
PastryId = model.PastryId, PastryId = model.PastryId,
ClientId = model.ClientId,
Count = model.Count, Count = model.Count,
Sum = model.Sum, Sum = model.Sum,
Status = model.Status, Status = model.Status,
@ -80,6 +84,7 @@ namespace ConfectioneryDatabaseImplement.Models
return new() return new()
{ {
PastryName = context.Pastries.FirstOrDefault(x => x.Id == PastryId)?.PastryName ?? string.Empty, PastryName = context.Pastries.FirstOrDefault(x => x.Id == PastryId)?.PastryName ?? string.Empty,
ClientFIO = Client.ClientFIO,
PastryId = PastryId, PastryId = PastryId,
Count = Count, Count = Count,
Sum = Sum, Sum = Sum,

View File

@ -34,16 +34,27 @@ namespace ConfectioneryDatabaseImplement.Implements
public List<OrderViewModel> GetFilteredList(OrderSearchModel model) public List<OrderViewModel> GetFilteredList(OrderSearchModel model)
{ {
if (!model.Id.HasValue && model.DateFrom.HasValue && model.DateTo.HasValue) // если не ищем по айдишнику, значит ищем по диапазону дат if (model.Id.HasValue)
{
var result = GetElement(model);
return result != null ? new() { result } : new();
}
using var context = new ConfectioneryDatabase();
if (model.DateFrom.HasValue && model.DateTo.HasValue) // если не ищем по айдишнику, значит ищем по диапазону дат
{ {
using var context = new ConfectioneryDatabase();
return context.Orders return context.Orders
.Where(x => model.DateFrom <= x.DateCreate.Date && x.DateCreate <= model.DateTo) .Where(x => model.DateFrom <= x.DateCreate.Date && x.DateCreate <= model.DateTo)
.Select(x => x.GetViewModel) .Select(x => x.GetViewModel)
.ToList(); .ToList();
} }
var result = GetElement(model); if (model.ClientId.HasValue)
return result != null ? new() { result } : new(); {
return context.Orders
.Where(x => x.Client.Id == model.ClientId)
.Select(x => x.GetViewModel)
.ToList();
}
return new();
} }
public List<OrderViewModel> GetFullList() public List<OrderViewModel> GetFullList()