From 07f7204aab5e26dd8321a2c2d265607a207277b9 Mon Sep 17 00:00:00 2001 From: Adelina888 Date: Thu, 20 Feb 2025 17:32:50 +0400 Subject: [PATCH] =?UTF-8?q?=D0=9A=D0=BE=D0=BD=D1=82=D1=80=D0=B0=D0=BA?= =?UTF-8?q?=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IOrderBusinessLogicContract.cs | 23 +++++++++++++++++++ .../IPostBusinessLogicContract.cs | 20 ++++++++++++++++ .../IProductBusinessLogicContract.cs | 21 +++++++++++++++++ .../IRestaurantBusinessLogicContract.cs | 20 ++++++++++++++++ .../ISalaryBusinessLogicContract.cs | 16 +++++++++++++ .../IWorkerBusinessLogicContract.cs | 20 ++++++++++++++++ .../PipingHot/DataModels/OrderDataModel.cs | 9 +++++--- .../IOrderStorageContract.cs | 17 ++++++++++++++ .../ISalaryStorageContract.cs | 14 +++++++++++ .../IWorkerStorageContract.cs | 19 +++++++++++++++ 10 files changed, 176 insertions(+), 3 deletions(-) create mode 100644 PipingHot/PipingHot/BusinessLogicsContracts/IOrderBusinessLogicContract.cs create mode 100644 PipingHot/PipingHot/BusinessLogicsContracts/IPostBusinessLogicContract.cs create mode 100644 PipingHot/PipingHot/BusinessLogicsContracts/IProductBusinessLogicContract.cs create mode 100644 PipingHot/PipingHot/BusinessLogicsContracts/IRestaurantBusinessLogicContract.cs create mode 100644 PipingHot/PipingHot/BusinessLogicsContracts/ISalaryBusinessLogicContract.cs create mode 100644 PipingHot/PipingHot/BusinessLogicsContracts/IWorkerBusinessLogicContract.cs create mode 100644 PipingHot/PipingHot/StoragesContracts/IOrderStorageContract.cs create mode 100644 PipingHot/PipingHot/StoragesContracts/ISalaryStorageContract.cs create mode 100644 PipingHot/PipingHot/StoragesContracts/IWorkerStorageContract.cs diff --git a/PipingHot/PipingHot/BusinessLogicsContracts/IOrderBusinessLogicContract.cs b/PipingHot/PipingHot/BusinessLogicsContracts/IOrderBusinessLogicContract.cs new file mode 100644 index 0000000..0a36c40 --- /dev/null +++ b/PipingHot/PipingHot/BusinessLogicsContracts/IOrderBusinessLogicContract.cs @@ -0,0 +1,23 @@ +using PipingHotContrast.DataModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PipingHotContrast.BusinessLogicsContracts; + +public interface IOrderBusinessLogicContract +{ + List GetAllOrdersByPeriod(DateTime fromDate, DateTime +toDate); + List GetAllOrdersByWorkerByPeriod(string workerId, DateTime + fromDate, DateTime toDate); + List GetAllOrdersByRestaurantByPeriod(string restaurantId, DateTime + fromDate, DateTime toDate); + List GetAllOrdersByProductByPeriod(string productId, DateTime + fromDate, DateTime toDate); + OrderDataModel GetOrderByData(string data); + void InsertOrder(OrderDataModel orderDataModel); + void CancelOrder(string id); +} diff --git a/PipingHot/PipingHot/BusinessLogicsContracts/IPostBusinessLogicContract.cs b/PipingHot/PipingHot/BusinessLogicsContracts/IPostBusinessLogicContract.cs new file mode 100644 index 0000000..2f966ed --- /dev/null +++ b/PipingHot/PipingHot/BusinessLogicsContracts/IPostBusinessLogicContract.cs @@ -0,0 +1,20 @@ +using PipingHotContrast.DataModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PipingHotContrast.BusinessLogicsContracts; + + public interface IPostBusinessLogicContract +{ + List GetAllPosts(bool onlyActive); + List GetAllDataOfPost(string postId); + PostDataModel GetPostByData(string data); + void InsertPost(PostDataModel postDataModel); + void UpdatePost(PostDataModel postDataModel); + void DeletePost(string id); + void RestorePost(string id); + +} diff --git a/PipingHot/PipingHot/BusinessLogicsContracts/IProductBusinessLogicContract.cs b/PipingHot/PipingHot/BusinessLogicsContracts/IProductBusinessLogicContract.cs new file mode 100644 index 0000000..9a15d31 --- /dev/null +++ b/PipingHot/PipingHot/BusinessLogicsContracts/IProductBusinessLogicContract.cs @@ -0,0 +1,21 @@ +using PipingHotContrast.DataModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PipingHotContrast.BusinessLogicsContracts; + +public interface IProductBusinessLogicContract +{ + List GetAllProducts(bool onlyActive = true); + List GetAllProductsByRestaurant(string restaurantId, + bool onlyActive = true); + List GetProductHistoryByProduct(string productId); + ProductDataModel GetProductByData(string data); + void InsertProduct(ProductDataModel productDataModel); + void UpdateProduct(ProductDataModel productDataModel); + void DeleteProduct(string id); + +} diff --git a/PipingHot/PipingHot/BusinessLogicsContracts/IRestaurantBusinessLogicContract.cs b/PipingHot/PipingHot/BusinessLogicsContracts/IRestaurantBusinessLogicContract.cs new file mode 100644 index 0000000..9d3d11e --- /dev/null +++ b/PipingHot/PipingHot/BusinessLogicsContracts/IRestaurantBusinessLogicContract.cs @@ -0,0 +1,20 @@ +using PipingHotContrast.DataModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PipingHotContrast.BusinessLogicsContracts; + +public interface IRestaurantBusinessLogicContract +{ + + List GetAllRestaurants(); + RestaurantDataModel GetRestaurantByData(string data); + void InsertRestaurant(RestaurantDataModel restaurantDataModel); + void UpdateRestaurant(RestaurantDataModel restaurantDataModel); + + void DeleteRestaurant(string id); + +} diff --git a/PipingHot/PipingHot/BusinessLogicsContracts/ISalaryBusinessLogicContract.cs b/PipingHot/PipingHot/BusinessLogicsContracts/ISalaryBusinessLogicContract.cs new file mode 100644 index 0000000..f7e3dad --- /dev/null +++ b/PipingHot/PipingHot/BusinessLogicsContracts/ISalaryBusinessLogicContract.cs @@ -0,0 +1,16 @@ +using PipingHotContrast.DataModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PipingHotContrast.BusinessLogicsContracts; + +public interface ISalaryBusinessLogicContract +{ + List GetAllSalariesByPeriod(DateTime fromDate, DateTime toDate); + + List GetAllSalariesByPeriodByWorker(DateTime fromDate, DateTime toDate, string workerId); + void CalculateSalaryByMounth(DateTime date); +} diff --git a/PipingHot/PipingHot/BusinessLogicsContracts/IWorkerBusinessLogicContract.cs b/PipingHot/PipingHot/BusinessLogicsContracts/IWorkerBusinessLogicContract.cs new file mode 100644 index 0000000..d17ed44 --- /dev/null +++ b/PipingHot/PipingHot/BusinessLogicsContracts/IWorkerBusinessLogicContract.cs @@ -0,0 +1,20 @@ +using PipingHotContrast.DataModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PipingHotContrast.BusinessLogicsContracts; + +public interface IWorkerBusinessLogicContract +{ + List GetAllWorkers(bool onlyActive = true); + List GetAllWorkersByPost(string postId, bool onlyActive = true); + List GetAllWorkersByBirthDate(DateTime fromDate, DateTime toDate, bool onlyActive = true); + List GetAllWorkersByEmploymentDate(DateTime fromDate, DateTime toDate, bool onlyActive = true); + WorkerDataModel GetWorkerByData(string data); + void InsertWorker(WorkerDataModel workerDataModel); + void UpdateWorker(WorkerDataModel workerDataModel); + void DeleteWorker(string id); +} diff --git a/PipingHot/PipingHot/DataModels/OrderDataModel.cs b/PipingHot/PipingHot/DataModels/OrderDataModel.cs index 7906054..2eafd1f 100644 --- a/PipingHot/PipingHot/DataModels/OrderDataModel.cs +++ b/PipingHot/PipingHot/DataModels/OrderDataModel.cs @@ -9,11 +9,11 @@ using System.Threading.Tasks; namespace PipingHotContrast.DataModels; -public class OrderDataModel(string id, string workerId, string? restaurantId, double sum, bool isCancel, List products):IValidation +public class OrderDataModel(string id, string workerId, string restaurantId, double sum, bool isCancel, List products):IValidation { public string Id { get; private set; } = id; public string WorkerId { get; private set; } = workerId; - public string? RestaurantId { get; private set; } = restaurantId; + public string RestaurantId { get; private set; } = restaurantId; public DateTime OrderDate { get; private set; } = DateTime.UtcNow; public double Sum { get; private set; } = sum; public bool IsCancel { get; private set; } = isCancel; @@ -34,7 +34,10 @@ public class OrderDataModel(string id, string workerId, string? restaurantId, do if (!WorkerId.IsGuid()) throw new ValidationException("The value in the field WorkerId is not a unique identifier"); - if (!RestaurantId?.IsGuid() ?? !RestaurantId?.IsEmpty() ?? false) + if (RestaurantId.IsEmpty()) + throw new ValidationException("Field RestaurantId is empty"); + + if (!RestaurantId.IsGuid()) throw new ValidationException("The value in the field RestaurantId is not a unique identifier"); if (Sum <= 0) diff --git a/PipingHot/PipingHot/StoragesContracts/IOrderStorageContract.cs b/PipingHot/PipingHot/StoragesContracts/IOrderStorageContract.cs new file mode 100644 index 0000000..04f2c72 --- /dev/null +++ b/PipingHot/PipingHot/StoragesContracts/IOrderStorageContract.cs @@ -0,0 +1,17 @@ +using PipingHotContrast.DataModels; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PipingHotContrast.StoragesContracts; + +public interface IOrderStorageContract +{ + List GetList(DateTime? startDate = null, DateTime? endDate = null, string? workerId = null, string? restaurantId = null, string? productId = null); + OrderDataModel? GetElementById(string id); + void AddElement(OrderDataModel orderDataModel); + void DelElement(string id); +} diff --git a/PipingHot/PipingHot/StoragesContracts/ISalaryStorageContract.cs b/PipingHot/PipingHot/StoragesContracts/ISalaryStorageContract.cs new file mode 100644 index 0000000..9cc67c8 --- /dev/null +++ b/PipingHot/PipingHot/StoragesContracts/ISalaryStorageContract.cs @@ -0,0 +1,14 @@ +using PipingHotContrast.DataModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PipingHotContrast.StoragesContracts; + +public interface ISalaryStorageContract +{ + List GetList(DateTime startDate, DateTime engDate, string? workerId = null); + void AddElement(SalaryDataModel salaryDataModel); +} diff --git a/PipingHot/PipingHot/StoragesContracts/IWorkerStorageContract.cs b/PipingHot/PipingHot/StoragesContracts/IWorkerStorageContract.cs new file mode 100644 index 0000000..d04782e --- /dev/null +++ b/PipingHot/PipingHot/StoragesContracts/IWorkerStorageContract.cs @@ -0,0 +1,19 @@ +using PipingHotContrast.DataModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PipingHotContrast.StoragesContracts; + +public interface IWorkerStorageContract +{ + List GetList(bool onlyActive = true, string? postId = null, DateTime? fromBirtDate = null, DateTime? toBirtDate = null, DateTime? fromEmploymentDate = null, DateTime? toEmploymentDate = null); + WorkerDataModel? GetElementById(string id); + WorkerDataModel? GetElementByFIO(string fio); + void AddElement(WorkerDataModel workerDataModel); + void UpdElement(WorkerDataModel woworkerDataModel); + void DelElement(string id); + +}