diff --git a/PipingHot/PipingHot/DataModels/OrderDataModel.cs b/PipingHot/PipingHot/DataModels/OrderDataModel.cs index d3b70dd..7906054 100644 --- a/PipingHot/PipingHot/DataModels/OrderDataModel.cs +++ b/PipingHot/PipingHot/DataModels/OrderDataModel.cs @@ -9,13 +9,15 @@ using System.Threading.Tasks; namespace PipingHotContrast.DataModels; -public class OrderDataModel(string id, string workerId, string? restaurantId, double sum, 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 DateTime OrderDate { get; private set; } = DateTime.UtcNow; public double Sum { get; private set; } = sum; + public bool IsCancel { get; private set; } = isCancel; + public List Products { get; private set; } = products; public void Validate() diff --git a/PipingHot/PipingHot/StoragesContracts/IPostStorageContract.cs b/PipingHot/PipingHot/StoragesContracts/IPostStorageContract.cs new file mode 100644 index 0000000..c783322 --- /dev/null +++ b/PipingHot/PipingHot/StoragesContracts/IPostStorageContract.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.StoragesContracts; + +public interface IPostStorageContract +{ + List GetList(bool onlyActual = true); + List GetPostWithHistory(string postId); + PostDataModel? GetElementById(int id); + PostDataModel? GetElementByName(string name); + void AddElement(PostDataModel postDataModel); + void UpdElement(PostDataModel postDataModel); + void DelElement(string id); + void ResElement(string id); +} diff --git a/PipingHot/PipingHot/StoragesContracts/IProductStorageContract.cs b/PipingHot/PipingHot/StoragesContracts/IProductStorageContract.cs new file mode 100644 index 0000000..b90d839 --- /dev/null +++ b/PipingHot/PipingHot/StoragesContracts/IProductStorageContract.cs @@ -0,0 +1,18 @@ +using PipingHotContrast.DataModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PipingHotContrast.StoragesContracts; + +public interface IProductStorageContract +{ + List GetList(bool onlyActive = true, string? restaurantId = null); + List GetHistoryByProductId(string productId); + ProductDataModel? GetElementById(string id); + ProductDataModel? GetElementByName(string name); + void AddElement(ProductDataModel productDataModel); + void UpdElement(ProductDataModel productDataModel); +} diff --git a/PipingHot/PipingHot/StoragesContracts/IRestaurantStorageContract.cs b/PipingHot/PipingHot/StoragesContracts/IRestaurantStorageContract.cs new file mode 100644 index 0000000..1033e59 --- /dev/null +++ b/PipingHot/PipingHot/StoragesContracts/IRestaurantStorageContract.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 IRestaurantStorageContract +{ + List GetList(); + RestaurantDataModel? GetElementById(string id); + RestaurantDataModel? GetElementByName(string name); + RestaurantDataModel? GetElementByOldName(string name); + void AddElement(RestaurantDataModel restaurantDataModel); + void UpdElement(RestaurantDataModel restaurantDataModel); + void DelElement(string id); +} diff --git a/PipingHot/PipingHotTests/DataModelsTests/OrderDataModelTests.cs b/PipingHot/PipingHotTests/DataModelsTests/OrderDataModelTests.cs index 727f775..d18c41a 100644 --- a/PipingHot/PipingHotTests/DataModelsTests/OrderDataModelTests.cs +++ b/PipingHot/PipingHotTests/DataModelsTests/OrderDataModelTests.cs @@ -14,57 +14,57 @@ internal class OrderDataModelTests [Test] public void IdIsNullOrEmptyTest() { - var order = CreateDataModel(null, Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, CreateSubDataModel()); + var order = CreateDataModel(null, Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, false, CreateSubDataModel()); Assert.That(() => order.Validate(), Throws.TypeOf()); - order = CreateDataModel(string.Empty, Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, CreateSubDataModel()); + order = CreateDataModel(string.Empty, Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, false, CreateSubDataModel()); Assert.That(() => order.Validate(), Throws.TypeOf()); } [Test] public void IdIsNotGuidTest() { - var order = CreateDataModel("id", Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, CreateSubDataModel()); + var order = CreateDataModel("id", Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, false, CreateSubDataModel()); Assert.That(() => order.Validate(), Throws.TypeOf()); } [Test] public void WorkerIdIsNullOrEmptyTest() { - var order = CreateDataModel(Guid.NewGuid().ToString(), null, Guid.NewGuid().ToString(), 10, CreateSubDataModel()); + var order = CreateDataModel(Guid.NewGuid().ToString(), null, Guid.NewGuid().ToString(), 10, false, CreateSubDataModel()); Assert.That(() => order.Validate(), Throws.TypeOf()); - order = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, Guid.NewGuid().ToString(), 10, CreateSubDataModel()); + order = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, Guid.NewGuid().ToString(), 10, false, CreateSubDataModel()); Assert.That(() => order.Validate(), Throws.TypeOf()); } [Test] public void WorkerIdIsNotGuidTest() { - var order = CreateDataModel(Guid.NewGuid().ToString(), "employeeId", Guid.NewGuid().ToString(), 10, CreateSubDataModel()); + var order = CreateDataModel(Guid.NewGuid().ToString(), "employeeId", Guid.NewGuid().ToString(), 10, false, CreateSubDataModel()); Assert.That(() => order.Validate(), Throws.TypeOf()); } [Test] public void RestaurantIdIsNotGuidTest() { - var order = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), "restaurantId", 10, CreateSubDataModel()); + var order = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), "restaurantId", 10, false, CreateSubDataModel()); Assert.That(() => order.Validate(), Throws.TypeOf()); } [Test] public void SumIsLessOrZeroTest() { - var order = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 0, CreateSubDataModel()); + var order = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 0, false, CreateSubDataModel()); Assert.That(() => order.Validate(), Throws.TypeOf()); - order = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), -10, CreateSubDataModel()); + order = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), -10, false, CreateSubDataModel()); Assert.That(() => order.Validate(), Throws.TypeOf()); } [Test] public void ProductsIsNullOrEmptyTest() { - var order = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, null); + var order = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, false, null); Assert.That(() => order.Validate(), Throws.TypeOf()); - order = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, []); + order = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, false,[]); Assert.That(() => order.Validate(), Throws.TypeOf()); } @@ -75,8 +75,9 @@ internal class OrderDataModelTests var workerId = Guid.NewGuid().ToString(); var restaurantId = Guid.NewGuid().ToString(); var sum = 10; + var isCancel = true; var products = CreateSubDataModel(); - var order = CreateDataModel(orderId, workerId, restaurantId, sum, products); + var order = CreateDataModel(orderId, workerId, restaurantId, sum, isCancel, products); Assert.That(() => order.Validate(), Throws.Nothing); Assert.Multiple(() => { @@ -84,12 +85,13 @@ internal class OrderDataModelTests Assert.That(order.WorkerId, Is.EqualTo(workerId)); Assert.That(order.RestaurantId, Is.EqualTo(restaurantId)); Assert.That(order.Sum, Is.EqualTo(sum)); + Assert.That(order.IsCancel, Is.EqualTo(isCancel)); Assert.That(order.Products, Is.EquivalentTo(products)); }); } - private static OrderDataModel CreateDataModel(string? id, string? workerId, string? restaurantId, double sum, List? products) => - new(id, workerId, restaurantId, sum, products); + private static OrderDataModel CreateDataModel(string? id, string? workerId, string? restaurantId, double sum, bool isCancel, List? products) => + new(id, workerId, restaurantId, sum, isCancel, products); private static List CreateSubDataModel() => [new(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 1)];