From cd6b90696b411c6023306d08c8f35eed585ca972 Mon Sep 17 00:00:00 2001 From: Maciej Maciejewski Date: Sun, 16 Jun 2024 23:02:04 +0200 Subject: [PATCH] =?UTF-8?q?komunikaty=20b=C5=82=C4=99d=C3=B3w?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Controllers/ExpenseController.cs | 15 ++++++++-- Controllers/ProductController.cs | 28 +++++++++++++++---- TestClass.cs | 2 +- .../Transactions/Transaction2Mapping.cs | 2 +- nHibernate/Transactions/TransactionMapping.cs | 2 +- 5 files changed, 37 insertions(+), 12 deletions(-) diff --git a/Controllers/ExpenseController.cs b/Controllers/ExpenseController.cs index 77478be..2480c83 100644 --- a/Controllers/ExpenseController.cs +++ b/Controllers/ExpenseController.cs @@ -16,6 +16,7 @@ */ using FirmTracker_Server.nHibernate.Expenses; +using FirmTracker_Server.nHibernate.Products; using Microsoft.AspNetCore.Mvc; namespace FirmTracker_Server.Controllers { @@ -33,8 +34,12 @@ namespace FirmTracker_Server.Controllers [HttpPost] [ProducesResponseType(201)] // Created [ProducesResponseType(400)] // Bad Request - public IActionResult CreateExpense([FromBody] Expense expense) { - try + public IActionResult CreateExpense([FromBody] Expense expense) { + if (expense.Value<=0) + { + throw new InvalidOperationException("Wydatek nie może posiadać kwoty mniejszej lub równej 0."); + } + try { _expenseCrud.AddExpense(expense); return CreatedAtAction("GetExpense", new { id = expense.Id }, expense); @@ -66,7 +71,11 @@ namespace FirmTracker_Server.Controllers { if (id != expense.Id) { - return BadRequest("Expense ID mismatch"); + return BadRequest("Nieprawidłowe ID wydatku"); + } + if (expense.Value <= 0) + { + throw new InvalidOperationException("Wydatek nie może posiadać kwoty mniejszej lub równej 0."); } try { diff --git a/Controllers/ProductController.cs b/Controllers/ProductController.cs index 1e0814e..6dd35cb 100644 --- a/Controllers/ProductController.cs +++ b/Controllers/ProductController.cs @@ -17,6 +17,8 @@ using FirmTracker_Server.nHibernate.Products; using Microsoft.AspNetCore.Mvc; +using System; + namespace FirmTracker_Server.Controllers { [Route("api/[controller]")] @@ -41,11 +43,18 @@ namespace FirmTracker_Server.Controllers { if (product.Type != 0 && product.Type != 1) { - return BadRequest("Kategoria produktu musi być ustawiona na 0 lub 1."); + throw new InvalidOperationException("Kategoria produktu musi być ustawiona na 0 lub 1."); } if (product.Type == 0 && product.Availability != 0) { - return BadRequest("Dostępność usługi musi być ustawiona na 0."); + throw new InvalidOperationException("Dostępność usługi musi być ustawiona na 0."); + } + if(product.Type ==1 && product.Availability < 0) { + throw new InvalidOperationException("Dostępność towaru nie może być ujemna."); + } + if (product.Price < 0) + { + throw new InvalidOperationException("Produkt nie może posiadać ujemnej ceny."); } try { @@ -88,16 +97,23 @@ namespace FirmTracker_Server.Controllers public IActionResult UpdateProduct(int id, [FromBody] Product product) { if (id != product.Id) - return BadRequest("ID produktu nie zgadza się."); + throw new InvalidOperationException("ID produktu nie zgadza się."); if (product.Type != 0 && product.Type != 1) { - return BadRequest("Kategoria produktu musi być ustawiona na 0 lub 1."); + throw new InvalidOperationException("Kategoria produktu musi być ustawiona na 0 lub 1."); } if (product.Type == 0 && product.Availability != 0) { - return BadRequest("Dostępność usługi musi być ustawiona na 0."); + throw new InvalidOperationException("Dostępność usługi musi być ustawiona na 0."); + } + if (product.Type == 1 && product.Availability < 0) + { + throw new InvalidOperationException("Dostępność towaru nie może być ujemna."); + } + if (product.Price < 0) + { + throw new InvalidOperationException("Produkt nie może posiadać ujemnej ceny."); } - try { _productCrud.UpdateProduct(product); diff --git a/TestClass.cs b/TestClass.cs index eb3e30d..5e28ecf 100644 --- a/TestClass.cs +++ b/TestClass.cs @@ -54,7 +54,7 @@ namespace FirmTracker_Server var products = new List { CreateProduct("Tarta_truskawka", "produkt", 31.99m, 1, 10), - CreateProduct("Tarta_czekolada", "produkt", 30.99m, 1, 8), + CreateProduct("Tarta_czekolada", "produkt", 30.99m, 1, 10), CreateProduct("Tarta_agrest", "produkt", 32.90m, 1, 8), CreateProduct("Tarta_pistacja", "produkt", 35.99m, 1, 12), CreateProduct("Tarta_karmel", "produkt", 32.00m, 1, 12), diff --git a/nHibernate/Transactions/Transaction2Mapping.cs b/nHibernate/Transactions/Transaction2Mapping.cs index 6fff813..53ac5b8 100644 --- a/nHibernate/Transactions/Transaction2Mapping.cs +++ b/nHibernate/Transactions/Transaction2Mapping.cs @@ -18,7 +18,7 @@ namespace FirmTracker_Server.nHibernate.Transactions HasMany(x => x.TransactionProducts) .KeyColumn("TransactionId") .Cascade.AllDeleteOrphan() - .Inverse(); // Ustawienie Inverse() wskazuje, że to `TransactionProduct` jest właścicielem relacji + .Inverse(); } } diff --git a/nHibernate/Transactions/TransactionMapping.cs b/nHibernate/Transactions/TransactionMapping.cs index eb39303..552fe76 100644 --- a/nHibernate/Transactions/TransactionMapping.cs +++ b/nHibernate/Transactions/TransactionMapping.cs @@ -18,7 +18,7 @@ namespace FirmTracker_Server.nHibernate.Transactions HasMany(x => x.TransactionProducts) .KeyColumn("TransactionId") .Cascade.AllDeleteOrphan() - .Inverse(); // Ustawienie Inverse() wskazuje, że to `TransactionProduct` jest właścicielem relacji + .Inverse(); } }