diff --git a/MagicCarpetProject/MagicCarpetBusinessLogic/Implementations/AgencyBusinessLogicContract.cs b/MagicCarpetProject/MagicCarpetBusinessLogic/Implementations/AgencyBusinessLogicContract.cs index 7874e66..f28448d 100644 --- a/MagicCarpetProject/MagicCarpetBusinessLogic/Implementations/AgencyBusinessLogicContract.cs +++ b/MagicCarpetProject/MagicCarpetBusinessLogic/Implementations/AgencyBusinessLogicContract.cs @@ -16,17 +16,17 @@ namespace MagicCarpetBusinessLogic.Implementations; public class AgencyBusinessLogicContract(IAgencyStorageContract agencyStorageContract, ILogger logger) : IAgencyBusinessLogicContract { - private readonly IAgencyStorageContract _AgencyStorageContract = agencyStorageContract; + private readonly IAgencyStorageContract _agencyStorageContract = agencyStorageContract; private readonly ILogger _logger = logger; - public List GetAllComponents() + public List GetAllAgencies() { - _logger.LogInformation("GetAllComponents"); - return _AgencyStorageContract.GetList() ?? throw new NullListException(); + _logger.LogInformation("GetAllTours"); + return _agencyStorageContract.GetList() ?? throw new NullListException(); return []; } - public AgencyDataModel GetTourByData(string data) + public AgencyDataModel GetAgencyByData(string data) { _logger.LogInformation("Get element by data: {data}", data); if (data.IsEmpty()) @@ -37,28 +37,28 @@ public class AgencyBusinessLogicContract(IAgencyStorageContract agencyStorageCon { throw new ElementNotFoundException(data); } - return _AgencyStorageContract.GetElementById(data) ?? throw new ElementNotFoundException(data); + return _agencyStorageContract.GetElementById(data) ?? throw new ElementNotFoundException(data); return new("", TourType.None, 0, []); } - public void InsertTour(AgencyDataModel AgencyDataModel) + public void InsertAgency(AgencyDataModel AgencyDataModel) { _logger.LogInformation("New data: {json}", JsonSerializer.Serialize(AgencyDataModel)); ArgumentNullException.ThrowIfNull(AgencyDataModel); AgencyDataModel.Validate(); - _AgencyStorageContract.AddElement(AgencyDataModel); + _agencyStorageContract.AddElement(AgencyDataModel); } - public void UpdateTour(AgencyDataModel AgencyDataModel) + public void UpdateAgency(AgencyDataModel AgencyDataModel) { _logger.LogInformation("Update data: {json}", JsonSerializer.Serialize(AgencyDataModel)); ArgumentNullException.ThrowIfNull(AgencyDataModel); AgencyDataModel.Validate(); - _AgencyStorageContract.UpdElement(AgencyDataModel); + _agencyStorageContract.UpdElement(AgencyDataModel); } - public void DeleteTour(string id) + public void DeleteAgency(string id) { logger.LogInformation("Delete by id: {id}", id); if (id.IsEmpty()) @@ -69,6 +69,6 @@ public class AgencyBusinessLogicContract(IAgencyStorageContract agencyStorageCon { throw new ValidationException("Id is not a unique identifier"); } - _AgencyStorageContract.DelElement(id); + _agencyStorageContract.DelElement(id); } } diff --git a/MagicCarpetProject/MagicCarpetBusinessLogic/Implementations/SuppliesBusinessLogicContract.cs b/MagicCarpetProject/MagicCarpetBusinessLogic/Implementations/SuppliesBusinessLogicContract.cs index 8b5d993..e0341f2 100644 --- a/MagicCarpetProject/MagicCarpetBusinessLogic/Implementations/SuppliesBusinessLogicContract.cs +++ b/MagicCarpetProject/MagicCarpetBusinessLogic/Implementations/SuppliesBusinessLogicContract.cs @@ -16,20 +16,39 @@ namespace MagicCarpetBusinessLogic.Implementations; public class SuppliesBusinessLogicContract(ISuppliesStorageContract suppliesStorageContract, ILogger logger) : ISuppliesBusinessLogicContract { - private readonly ISuppliesStorageContract _suppliesStorageContract = suppliesStorageContract; private readonly ILogger _logger = logger; - - public List GetAllTours() + private readonly ISuppliesStorageContract _supplyStorageContract = suppliesStorageContract; + public List GetAllSuppliesByPeriod(DateTime fromDate, DateTime toDate) { - _logger.LogInformation("GetAllTours"); - return _suppliesStorageContract.GetList() ?? throw new NullListException(); - - return []; + _logger.LogInformation("GetAllSupplies params: {fromDate}, {toDate}", fromDate, toDate); + if (fromDate.IsDateNotOlder(toDate)) + { + throw new IncorrectDatesException(fromDate, toDate); + } + return _supplyStorageContract.GetList(fromDate, toDate) ?? throw new NullListException(); } - public SuppliesDataModel GetTourByData(string data) + public List GetAllSuppliesByCocktailByPeriod(string tourId, DateTime fromDate, DateTime toDate) { - _logger.LogInformation("Get element by data: {data}", data); + _logger.LogInformation("GetAllSupplies params: {cocktailId}, {fromDate}, {toDate}", tourId, fromDate, toDate); + if (fromDate.IsDateNotOlder(toDate)) + { + throw new IncorrectDatesException(fromDate, toDate); + } + if (tourId.IsEmpty()) + { + throw new ArgumentNullException(nameof(tourId)); + } + if (!tourId.IsGuid()) + { + throw new ValidationException("The value in the field tourId is not a unique identifier."); + } + return _supplyStorageContract.GetList(fromDate, toDate, tourId: tourId) ?? throw new NullListException(); + } + + public SuppliesDataModel GetSupplyByData(string data) + { + _logger.LogInformation("Get supply by data: {data}", data); if (data.IsEmpty()) { throw new ArgumentNullException(nameof(data)); @@ -38,25 +57,22 @@ public class SuppliesBusinessLogicContract(ISuppliesStorageContract suppliesStor { throw new ElementNotFoundException(data); } - return _suppliesStorageContract.GetElementById(data) ?? throw new ElementNotFoundException(data); - - return new("", TourType.None, DateTime.UtcNow, 0, []); + return _supplyStorageContract.GetElementById(data) ?? throw new ElementNotFoundException(data); } - public void InsertTour(SuppliesDataModel suppliesDataModel) + public void InsertSupply(SuppliesDataModel supplyDataModel) { - _logger.LogInformation("New data: {json}", JsonSerializer.Serialize(suppliesDataModel)); - ArgumentNullException.ThrowIfNull(suppliesDataModel); - suppliesDataModel.Validate(); - _suppliesStorageContract.AddElement(suppliesDataModel); - + _logger.LogInformation("New data: {json}", JsonSerializer.Serialize(supplyDataModel)); + ArgumentNullException.ThrowIfNull(supplyDataModel); + supplyDataModel.Validate(); + _supplyStorageContract.AddElement(supplyDataModel); } - public void UpdateTour(SuppliesDataModel suppliesDataModel) + public void UpdateSupply(SuppliesDataModel supplyDataModel) { - _logger.LogInformation("Update data: {json}", JsonSerializer.Serialize(suppliesDataModel)); - ArgumentNullException.ThrowIfNull(suppliesDataModel); - suppliesDataModel.Validate(); - _suppliesStorageContract.UpdElement(suppliesDataModel); + _logger.LogInformation("Update data: {json}", JsonSerializer.Serialize(supplyDataModel)); + ArgumentNullException.ThrowIfNull(supplyDataModel); + supplyDataModel.Validate(); + _supplyStorageContract.UpdElement(supplyDataModel); } } diff --git a/MagicCarpetProject/MagicCarpetContracts/BusinessLogicContracts/IAgencyBusinessLogicContract.cs b/MagicCarpetProject/MagicCarpetContracts/BusinessLogicContracts/IAgencyBusinessLogicContract.cs index b14eeb3..ab05a26 100644 --- a/MagicCarpetProject/MagicCarpetContracts/BusinessLogicContracts/IAgencyBusinessLogicContract.cs +++ b/MagicCarpetProject/MagicCarpetContracts/BusinessLogicContracts/IAgencyBusinessLogicContract.cs @@ -9,9 +9,9 @@ namespace MagicCarpetContracts.BusinessLogicContracts; public interface IAgencyBusinessLogicContract { - List GetAllTours(); - AgencyDataModel GetTourByData(string data); - void InsertTour(AgencyDataModel agencyDataModel); - void UpdateTour(AgencyDataModel agencyDataModel); - void DeleteTour(string id); + List GetAllAgencies(); + AgencyDataModel GetAgencyByData(string data); + void InsertAgency(AgencyDataModel agencyDataModel); + void UpdateAgency(AgencyDataModel agencyDataModel); + void DeleteAgency(string id); } diff --git a/MagicCarpetProject/MagicCarpetContracts/BusinessLogicContracts/ISuppliesBusinessLogicContract.cs b/MagicCarpetProject/MagicCarpetContracts/BusinessLogicContracts/ISuppliesBusinessLogicContract.cs index 44b0c59..1b2f187 100644 --- a/MagicCarpetProject/MagicCarpetContracts/BusinessLogicContracts/ISuppliesBusinessLogicContract.cs +++ b/MagicCarpetProject/MagicCarpetContracts/BusinessLogicContracts/ISuppliesBusinessLogicContract.cs @@ -9,8 +9,13 @@ namespace MagicCarpetContracts.BusinessLogicContracts; public interface ISuppliesBusinessLogicContract { - List GetAllTours(); - SuppliesDataModel GetTourByData(string data); - void InsertTour(SuppliesDataModel componentDataModel); - void UpdateTour(SuppliesDataModel componentDataModel); + List GetAllSuppliesByPeriod(DateTime fromDate, DateTime toDate); + + List GetAllSuppliesByCocktailByPeriod(string tourId, DateTime fromDate, DateTime toDate); + + SuppliesDataModel GetSupplyByData(string data); + + void InsertSupply(SuppliesDataModel supplyDataModel); + + void UpdateSupply(SuppliesDataModel supplyDataModel); } diff --git a/MagicCarpetProject/MagicCarpetContracts/StoragesContracts/IAgencyStorageContract.cs b/MagicCarpetProject/MagicCarpetContracts/StoragesContracts/IAgencyStorageContract.cs index 21334e4..8b8fd7d 100644 --- a/MagicCarpetProject/MagicCarpetContracts/StoragesContracts/IAgencyStorageContract.cs +++ b/MagicCarpetProject/MagicCarpetContracts/StoragesContracts/IAgencyStorageContract.cs @@ -10,7 +10,8 @@ namespace MagicCarpetContracts.StoragesContracts; public interface IAgencyStorageContract { List GetList(); - AgencyDataModel GetElementById(string id); + AgencyDataModel? GetElementById(string id); + AgencyDataModel? GetElementByName(string name); void AddElement(AgencyDataModel agencyDataModel); void UpdElement(AgencyDataModel agencyDataModel); void DelElement(string id); diff --git a/MagicCarpetProject/MagicCarpetContracts/StoragesContracts/ISuppliesStorageContract.cs b/MagicCarpetProject/MagicCarpetContracts/StoragesContracts/ISuppliesStorageContract.cs index 84ebf92..3255ce9 100644 --- a/MagicCarpetProject/MagicCarpetContracts/StoragesContracts/ISuppliesStorageContract.cs +++ b/MagicCarpetProject/MagicCarpetContracts/StoragesContracts/ISuppliesStorageContract.cs @@ -9,7 +9,7 @@ namespace MagicCarpetContracts.StoragesContracts; public interface ISuppliesStorageContract { - List GetList(DateTime? startDate = null); + List GetList(DateTime? startDate = null, DateTime? endDate = null, string? tourId = null); SuppliesDataModel GetElementById(string id); void AddElement(SuppliesDataModel suppliesDataModel); void UpdElement(SuppliesDataModel suppliesDataModel); diff --git a/MagicCarpetProject/MagicCarpetTests/BusinessLogicContractsTests/AgnecyBusinessLogicContractTests.cs b/MagicCarpetProject/MagicCarpetTests/BusinessLogicContractsTests/AgnecyBusinessLogicContractTests.cs index fb8b293..8701a3d 100644 --- a/MagicCarpetProject/MagicCarpetTests/BusinessLogicContractsTests/AgnecyBusinessLogicContractTests.cs +++ b/MagicCarpetProject/MagicCarpetTests/BusinessLogicContractsTests/AgnecyBusinessLogicContractTests.cs @@ -15,7 +15,7 @@ using System.Threading.Tasks; namespace MagicCarpetTests.BusinessLogicContractsTests; [TestFixture] -internal class AgnecyBusinessLogicContractTests +internal class AgnecyBusinessLogicContractTests { private IAgencyBusinessLogicContract _agencyBusinessLogicContract; private Mock _agencyStorageContract; diff --git a/MagicCarpetProject/MagicCarpetTests/BusinessLogicContractsTests/SuppliesBusinessLogicContractTests.cs b/MagicCarpetProject/MagicCarpetTests/BusinessLogicContractsTests/SuppliesBusinessLogicContractTests.cs index 63533aa..64298ec 100644 --- a/MagicCarpetProject/MagicCarpetTests/BusinessLogicContractsTests/SuppliesBusinessLogicContractTests.cs +++ b/MagicCarpetProject/MagicCarpetTests/BusinessLogicContractsTests/SuppliesBusinessLogicContractTests.cs @@ -14,7 +14,7 @@ using System.Threading.Tasks; namespace MagicCarpetTests.BusinessLogicContractsTests; [TestFixture] -internal class SuppliesBusinessLogicContractTests +internal class SuppliesBusinessLogicContractTests { private SuppliesBusinessLogicContract _suppliesBusinessLogicContract; private Mock _suppliesStorageContract;