From 0975a9b4d66348352bd61a822f85e6babfa8cfab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=98=D0=BB=D1=8C=D1=8F=20=D0=A4=D0=B5=D0=B4=D0=BE=D1=82?= =?UTF-8?q?=D0=BE=D0=B2?= Date: Mon, 29 Apr 2024 19:33:15 +0400 Subject: [PATCH] =?UTF-8?q?Report=20logis=20=D0=B7=D0=B0=D0=BF=D1=80=D0=BE?= =?UTF-8?q?=D1=81=20=D0=BD=D0=B2=20=D0=BF=D0=BE=D0=BB=D1=83=D1=87=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85=20?= =?UTF-8?q?=D0=B8=D0=B7=20=D0=B1=D0=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BusinessLogic/ReportLogic.cs | 42 +++++++++++++++++++ .../BindingModels/ReportBindingModel.cs | 15 +++++++ .../BusinessLogicContracts/IReportLogic.cs | 16 +++++++ .../ViewModels/ReportOrdersViewModel.cs | 17 ++++++++ .../Models/Order.cs | 2 +- 5 files changed, 91 insertions(+), 1 deletion(-) create mode 100644 ElectronicsShop/ElectronicsShopBusinessLogic/BusinessLogic/ReportLogic.cs create mode 100644 ElectronicsShop/ElectronicsShopContracts/BindingModels/ReportBindingModel.cs create mode 100644 ElectronicsShop/ElectronicsShopContracts/BusinessLogicContracts/IReportLogic.cs create mode 100644 ElectronicsShop/ElectronicsShopContracts/ViewModels/ReportOrdersViewModel.cs diff --git a/ElectronicsShop/ElectronicsShopBusinessLogic/BusinessLogic/ReportLogic.cs b/ElectronicsShop/ElectronicsShopBusinessLogic/BusinessLogic/ReportLogic.cs new file mode 100644 index 0000000..153b274 --- /dev/null +++ b/ElectronicsShop/ElectronicsShopBusinessLogic/BusinessLogic/ReportLogic.cs @@ -0,0 +1,42 @@ +using ElectronicsShopContracts.BindingModels; +using ElectronicsShopContracts.BusinessLogicContracts; +using ElectronicsShopContracts.SearchModels; +using ElectronicsShopContracts.StorageContracts; +using ElectronicsShopContracts.ViewModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ElectronicsShopBusinessLogic.BusinessLogic +{ + public class ReportLogic : IReportLogic + { + private readonly IOrderStorage _orderStorage; + private readonly IProductStorage _productStorag; + + public ReportLogic(IOrderStorage orderStorage, IProductStorage productStorag) { + _orderStorage = orderStorage; + _productStorag = productStorag; + } + + public List GetOrders(ReportBindingModel model) { + throw new NotImplementedException(); + } + + // Получение списка заказов за определенный период + public List GerOrders(ReportBindingModel model) { + return _orderStorage.GetFilteredList(new OrderSearchModel { + DateFrom = model.DateFrom, + DateTo = model.DateTo, + }).Select(x => new ReportOrdersViewModel { + ID = x.ID, + DateCreate = x.DateCreate, + Sum = x.Sum, + PaymeantOption = x.PaymeantOption.ToString(), + OrderStatus = x.Status.ToString(), + }).ToList(); + } + } +} diff --git a/ElectronicsShop/ElectronicsShopContracts/BindingModels/ReportBindingModel.cs b/ElectronicsShop/ElectronicsShopContracts/BindingModels/ReportBindingModel.cs new file mode 100644 index 0000000..87da266 --- /dev/null +++ b/ElectronicsShop/ElectronicsShopContracts/BindingModels/ReportBindingModel.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ElectronicsShopContracts.BindingModels +{ + public class ReportBindingModel + { + public string FileName { get; set; } = string.Empty; + public DateTime? DateFrom { get; set; } + public DateTime? DateTo { get; set; } + } +} diff --git a/ElectronicsShop/ElectronicsShopContracts/BusinessLogicContracts/IReportLogic.cs b/ElectronicsShop/ElectronicsShopContracts/BusinessLogicContracts/IReportLogic.cs new file mode 100644 index 0000000..c907c68 --- /dev/null +++ b/ElectronicsShop/ElectronicsShopContracts/BusinessLogicContracts/IReportLogic.cs @@ -0,0 +1,16 @@ +using ElectronicsShopContracts.BindingModels; +using ElectronicsShopContracts.ViewModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ElectronicsShopContracts.BusinessLogicContracts +{ + public interface IReportLogic + { + // Получение списка заказов за определенный период + List GetOrders(ReportBindingModel model); + } +} diff --git a/ElectronicsShop/ElectronicsShopContracts/ViewModels/ReportOrdersViewModel.cs b/ElectronicsShop/ElectronicsShopContracts/ViewModels/ReportOrdersViewModel.cs new file mode 100644 index 0000000..0052dda --- /dev/null +++ b/ElectronicsShop/ElectronicsShopContracts/ViewModels/ReportOrdersViewModel.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ElectronicsShopContracts.ViewModels +{ + public class ReportOrdersViewModel + { + public int ID { get; set; } + public DateTime DateCreate { get; set; } + public double Sum { get; set; } + public string PaymeantOption { get; set; } = string.Empty; + public string OrderStatus { get; set; } = string.Empty; + } +} diff --git a/ElectronicsShop/ElectronicsShopDataBaseImplement/Models/Order.cs b/ElectronicsShop/ElectronicsShopDataBaseImplement/Models/Order.cs index 7d51d78..428f670 100644 --- a/ElectronicsShop/ElectronicsShopDataBaseImplement/Models/Order.cs +++ b/ElectronicsShop/ElectronicsShopDataBaseImplement/Models/Order.cs @@ -25,7 +25,7 @@ namespace ElectronicsShopDataBaseImplement.Models [Required] public PaymeantOption PaymeantOption { get; set; } = PaymeantOption.Неизвестно; [Required] - public DateTime DateCreate { get; set; }= DateTime.Now; + public DateTime DateCreate { get; set; } = DateTime.Now; [Required] public DateTime? DateImplement { get; set; } [Required]