diff --git a/AutomobilePlant/AbstractAutoContracts/BindingModels/ReportBindingModel.cs b/AutomobilePlant/AbstractAutoContracts/BindingModels/ReportBindingModel.cs
new file mode 100644
index 0000000..b7a2f10
--- /dev/null
+++ b/AutomobilePlant/AbstractAutoContracts/BindingModels/ReportBindingModel.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace AutomobilePlantContracts.BindingModels
+{
+ public class ReportBindingModel
+ {
+ public string FileName { get; set; } = string.Empty;
+
+ public DateTime? DateFrom { get; set; }
+
+ public DateTime? DateTo { get; set; }
+ }
+}
diff --git a/AutomobilePlant/AbstractAutoContracts/BusinessLogicsContracts/IReportLogic.cs b/AutomobilePlant/AbstractAutoContracts/BusinessLogicsContracts/IReportLogic.cs
new file mode 100644
index 0000000..1c9a425
--- /dev/null
+++ b/AutomobilePlant/AbstractAutoContracts/BusinessLogicsContracts/IReportLogic.cs
@@ -0,0 +1,44 @@
+using AutomobilePlantContracts.BindingModels;
+using AutomobilePlantContracts.ViewModel;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace AutomobilePlantContracts.BusinessLogicsContracts
+{
+ public interface IReportLogic
+ {
+ ///
+ /// Получение списка компонент с указанием, в каких машинах используются
+ ///
+ ///
+ List GetCarComponent();
+
+ ///
+ /// Получение списка заказов за определенный период
+ ///
+ ///
+ ///
+ List GetOrders(ReportBindingModel model);
+
+ ///
+ /// Сохранение компонент в файл-Word
+ ///
+ ///
+ void SaveComponentsToWordFile(ReportBindingModel model);
+
+ ///
+ /// Сохранение компонент с указаеним машин в файл-Excel
+ ///
+ ///
+ void SaveCarComponentToExcelFile(ReportBindingModel model);
+
+ ///
+ /// Сохранение заказов в файл-Pdf
+ ///
+ ///
+ void SaveOrdersToPdfFile(ReportBindingModel model);
+ }
+}
diff --git a/AutomobilePlant/AbstractAutoContracts/SearchModel/OrderSearchModel.cs b/AutomobilePlant/AbstractAutoContracts/SearchModel/OrderSearchModel.cs
index de416ba..9406f9f 100644
--- a/AutomobilePlant/AbstractAutoContracts/SearchModel/OrderSearchModel.cs
+++ b/AutomobilePlant/AbstractAutoContracts/SearchModel/OrderSearchModel.cs
@@ -9,6 +9,9 @@ namespace AutomobilePlantContracts.SearchModel
public class OrderSearchModel
{
public int? Id { get; set; }
+ public DateTime? DateFrom { get; set; }
+
+ public DateTime? DateTo { get; set; }
}
}
diff --git a/AutomobilePlant/AbstractAutoContracts/ViewModel/ReportCarComponentViewModel.cs b/AutomobilePlant/AbstractAutoContracts/ViewModel/ReportCarComponentViewModel.cs
new file mode 100644
index 0000000..61983d1
--- /dev/null
+++ b/AutomobilePlant/AbstractAutoContracts/ViewModel/ReportCarComponentViewModel.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace AutomobilePlantContracts.ViewModel
+{
+ public class ReportCarComponentViewModel
+ {
+ public string CarName { get; set; } = string.Empty;
+
+ public int TotalCount { get; set; }
+
+ public List<(string Component, int Count)> Components { get; set; } = new();
+ }
+}
diff --git a/AutomobilePlant/AbstractAutoContracts/ViewModel/ReportOrdersViewModel.cs b/AutomobilePlant/AbstractAutoContracts/ViewModel/ReportOrdersViewModel.cs
new file mode 100644
index 0000000..b74e3b2
--- /dev/null
+++ b/AutomobilePlant/AbstractAutoContracts/ViewModel/ReportOrdersViewModel.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace AutomobilePlantContracts.ViewModel
+{
+ public class ReportOrdersViewModel
+ {
+ public int Id { get; set; }
+
+ public DateTime DateCreate { get; set; }
+
+ public string CarName { get; set; } = string.Empty;
+ public string Status { get; set; } = string.Empty;
+
+ public double Sum { get; set; }
+ }
+}