diff --git a/TheCatHasPawsProject/CatHasPawsContratcs/AdapterContracts/ISalaryAdapter.cs b/TheCatHasPawsProject/CatHasPawsContratcs/AdapterContracts/ISalaryAdapter.cs deleted file mode 100644 index 2f01414..0000000 --- a/TheCatHasPawsProject/CatHasPawsContratcs/AdapterContracts/ISalaryAdapter.cs +++ /dev/null @@ -1,12 +0,0 @@ -using CatHasPawsContratcs.AdapterContracts.OperationResponses; - -namespace CatHasPawsContratcs.AdapterContracts; - -public interface ISalaryAdapter -{ - SalaryOperationResponse GetListByPeriod(DateTime fromDate, DateTime toDate); - - SalaryOperationResponse GetListByPeriodByWorker(DateTime fromDate, DateTime toDate, string workerId); - - SalaryOperationResponse CalculateSalary(DateTime date); -} \ No newline at end of file diff --git a/TheCatHasPawsProject/CatHasPawsContratcs/AdapterContracts/OperationResponses/SalaryOperationResponse.cs b/TheCatHasPawsProject/CatHasPawsContratcs/AdapterContracts/OperationResponses/SalaryOperationResponse.cs deleted file mode 100644 index b69d437..0000000 --- a/TheCatHasPawsProject/CatHasPawsContratcs/AdapterContracts/OperationResponses/SalaryOperationResponse.cs +++ /dev/null @@ -1,17 +0,0 @@ -using CatHasPawsContratcs.Infrastructure; -using CatHasPawsContratcs.ViewModels; - -namespace CatHasPawsContratcs.AdapterContracts.OperationResponses; - -public class SalaryOperationResponse : OperationResponse -{ - public static SalaryOperationResponse OK(List data) => OK>(data); - - public static SalaryOperationResponse NoContent() => NoContent(); - - public static SalaryOperationResponse NotFound(string message) => NotFound(message); - - public static SalaryOperationResponse BadRequest(string message) => BadRequest(message); - - public static SalaryOperationResponse InternalServerError(string message) => InternalServerError(message); -} \ No newline at end of file diff --git a/TheCatHasPawsProject/CatHasPawsContratcs/DataModels/SalaryDataModel.cs b/TheCatHasPawsProject/CatHasPawsContratcs/DataModels/SalaryDataModel.cs index 38aa304..8a1996a 100644 --- a/TheCatHasPawsProject/CatHasPawsContratcs/DataModels/SalaryDataModel.cs +++ b/TheCatHasPawsProject/CatHasPawsContratcs/DataModels/SalaryDataModel.cs @@ -6,21 +6,12 @@ namespace CatHasPawsContratcs.DataModels; public class SalaryDataModel(string workerId, DateTime salaryDate, double workerSalary) : IValidation { - private readonly WorkerDataModel? _worker; - public string WorkerId { get; private set; } = workerId; public DateTime SalaryDate { get; private set; } = salaryDate; public double Salary { get; private set; } = workerSalary; - public string WorkerFIO => _worker?.FIO ?? string.Empty; - - public SalaryDataModel(string workerId, DateTime salaryDate, double workerSalary, WorkerDataModel worker) : this(workerId, salaryDate, workerSalary) - { - _worker = worker; - } - public void Validate() { if (WorkerId.IsEmpty()) diff --git a/TheCatHasPawsProject/CatHasPawsContratcs/ViewModels/SalaryViewModel.cs b/TheCatHasPawsProject/CatHasPawsContratcs/ViewModels/SalaryViewModel.cs deleted file mode 100644 index 79ea022..0000000 --- a/TheCatHasPawsProject/CatHasPawsContratcs/ViewModels/SalaryViewModel.cs +++ /dev/null @@ -1,12 +0,0 @@ -namespace CatHasPawsContratcs.ViewModels; - -public class SalaryViewModel -{ - public required string WorkerId { get; set; } - - public required string WorkerFIO { get; set; } - - public DateTime SalaryDate { get; set; } - - public double Salary { get; set; } -} \ No newline at end of file diff --git a/TheCatHasPawsProject/CatHasPawsDatabase/CatHasPawsDbContext.cs b/TheCatHasPawsProject/CatHasPawsDatabase/CatHasPawsDbContext.cs index ceb2334..10a708f 100644 --- a/TheCatHasPawsProject/CatHasPawsDatabase/CatHasPawsDbContext.cs +++ b/TheCatHasPawsProject/CatHasPawsDatabase/CatHasPawsDbContext.cs @@ -4,16 +4,9 @@ using Microsoft.EntityFrameworkCore; namespace CatHasPawsDatabase; -internal class CatHasPawsDbContext : DbContext +internal class CatHasPawsDbContext(IConfigurationDatabase configurationDatabase) : DbContext { - private readonly IConfigurationDatabase? _configurationDatabase; - - public CatHasPawsDbContext(IConfigurationDatabase configurationDatabase) - { - _configurationDatabase = configurationDatabase; - AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true); - AppContext.SetSwitch("Npgsql.DisableDateTimeInfinityConversions", true); - } + private readonly IConfigurationDatabase? _configurationDatabase = configurationDatabase; protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { diff --git a/TheCatHasPawsProject/CatHasPawsDatabase/Implementations/SalaryStorageContract.cs b/TheCatHasPawsProject/CatHasPawsDatabase/Implementations/SalaryStorageContract.cs index 8d8db1d..91854f1 100644 --- a/TheCatHasPawsProject/CatHasPawsDatabase/Implementations/SalaryStorageContract.cs +++ b/TheCatHasPawsProject/CatHasPawsDatabase/Implementations/SalaryStorageContract.cs @@ -3,7 +3,6 @@ using CatHasPawsContratcs.DataModels; using CatHasPawsContratcs.Exceptions; using CatHasPawsContratcs.StoragesContracts; using CatHasPawsDatabase.Models; -using Microsoft.EntityFrameworkCore; namespace CatHasPawsDatabase.Implementations; @@ -17,7 +16,6 @@ internal class SalaryStorageContract : ISalaryStorageContract _dbContext = dbContext; var config = new MapperConfiguration(cfg => { - cfg.CreateMap(); cfg.CreateMap(); cfg.CreateMap() .ForMember(dest => dest.WorkerSalary, opt => opt.MapFrom(src => src.Salary)); @@ -29,7 +27,7 @@ internal class SalaryStorageContract : ISalaryStorageContract { try { - var query = _dbContext.Salaries.Include(x => x.Worker).Where(x => x.SalaryDate >= startDate && x.SalaryDate <= endDate); + var query = _dbContext.Salaries.Where(x => x.SalaryDate >= startDate && x.SalaryDate <= endDate); if (workerId is not null) { query = query.Where(x => x.WorkerId == workerId); diff --git a/TheCatHasPawsProject/CatHasPawsTests/WebApiControllersTests/SalaryControllerTests.cs b/TheCatHasPawsProject/CatHasPawsTests/WebApiControllersTests/SalaryControllerTests.cs deleted file mode 100644 index 9c02ee8..0000000 --- a/TheCatHasPawsProject/CatHasPawsTests/WebApiControllersTests/SalaryControllerTests.cs +++ /dev/null @@ -1,258 +0,0 @@ -using CatHasPawsContratcs.ViewModels; -using CatHasPawsDatabase.Models; -using CatHasPawsTests.Infrastructure; -using System.Net; - -namespace CatHasPawsTests.WebApiControllersTests; - -[TestFixture] -internal class SalaryControllerTests : BaseWebApiControllerTest -{ - [TearDown] - public void TearDown() - { - CatHasPawsDbContext.RemovePostsFromDatabase(); - CatHasPawsDbContext.RemoveSalesFromDatabase(); - CatHasPawsDbContext.RemoveProductsFromDatabase(); - CatHasPawsDbContext.RemoveManufacturersFromDatabase(); - CatHasPawsDbContext.RemoveSalariesFromDatabase(); - CatHasPawsDbContext.RemoveWorkersFromDatabase(); - } - - [Test] - public async Task GetList_WhenHaveRecords_ShouldSuccess_Test() - { - //Arrange - var worker = CatHasPawsDbContext.InsertWorkerToDatabaseAndReturn(fio: "name"); - var salary = CatHasPawsDbContext.InsertSalaryToDatabaseAndReturn(worker.Id, workerSalary: 100); - CatHasPawsDbContext.InsertSalaryToDatabaseAndReturn(worker.Id); - CatHasPawsDbContext.InsertSalaryToDatabaseAndReturn(worker.Id); - //Act - var response = await HttpClient.GetAsync($"/api/salaries/getrecords?fromDate={DateTime.UtcNow.AddDays(-1):MM/dd/yyyy HH:mm:ss}&toDate={DateTime.UtcNow.AddDays(1):MM/dd/yyyy HH:mm:ss}"); - //Assert - Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK)); - var data = await GetModelFromResponseAsync>(response); - Assert.Multiple(() => - { - Assert.That(data, Is.Not.Null); - Assert.That(data, Has.Count.EqualTo(3)); - }); - AssertElement(data.First(x => x.Salary == salary.WorkerSalary), salary); - } - - [Test] - public async Task GetList_WhenNoRecords_ShouldSuccess_Test() - { - //Act - var response = await HttpClient.GetAsync($"/api/salaries/getrecords?fromDate={DateTime.UtcNow.AddDays(-1):MM/dd/yyyy HH:mm:ss}&toDate={DateTime.UtcNow.AddDays(1):MM/dd/yyyy HH:mm:ss}"); - //Assert - Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK)); - var data = await GetModelFromResponseAsync>(response); - Assert.Multiple(() => - { - Assert.That(data, Is.Not.Null); - Assert.That(data, Has.Count.EqualTo(0)); - }); - } - - [Test] - public async Task GetList_OnlyInDatePeriod_ShouldSuccess_Test() - { - //Arrange - var worker = CatHasPawsDbContext.InsertWorkerToDatabaseAndReturn(fio: "name"); - CatHasPawsDbContext.InsertSalaryToDatabaseAndReturn(worker.Id, salaryDate: DateTime.UtcNow.AddDays(-2)); - CatHasPawsDbContext.InsertSalaryToDatabaseAndReturn(worker.Id, salaryDate: DateTime.UtcNow.AddDays(-1).AddMinutes(-5)); - CatHasPawsDbContext.InsertSalaryToDatabaseAndReturn(worker.Id, salaryDate: DateTime.UtcNow.AddDays(-1).AddMinutes(5)); - CatHasPawsDbContext.InsertSalaryToDatabaseAndReturn(worker.Id, salaryDate: DateTime.UtcNow.AddDays(1).AddMinutes(-5)); - CatHasPawsDbContext.InsertSalaryToDatabaseAndReturn(worker.Id, salaryDate: DateTime.UtcNow.AddDays(1).AddMinutes(5)); - CatHasPawsDbContext.InsertSalaryToDatabaseAndReturn(worker.Id, salaryDate: DateTime.UtcNow.AddDays(-2)); - //Act - var response = await HttpClient.GetAsync($"/api/salaries/getrecords?fromDate={DateTime.UtcNow.AddDays(-1):MM/dd/yyyy HH:mm:ss}&toDate={DateTime.UtcNow.AddDays(1):MM/dd/yyyy HH:mm:ss}"); - //Assert - Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK)); - var data = await GetModelFromResponseAsync>(response); - Assert.That(data, Is.Not.Null); - Assert.Multiple(() => - { - Assert.That(data, Has.Count.EqualTo(2)); - }); - } - - [Test] - public async Task GetList_WhenDateIsIncorrect_ShouldBadRequest_Test() - { - //Act - var response = await HttpClient.GetAsync($"/api/salaries/getworkerrecords?fromDate={DateTime.UtcNow.AddDays(1):MM/dd/yyyy HH:mm:ss}&toDate={DateTime.UtcNow.AddDays(-1):MM/dd/yyyy HH:mm:ss}"); - //Assert - Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.BadRequest)); - } - - [Test] - public async Task GetList_ByWorker_ShouldSuccess_Test() - { - //Arrange - var worker1 = CatHasPawsDbContext.InsertWorkerToDatabaseAndReturn(fio: "name 1"); - var worker2 = CatHasPawsDbContext.InsertWorkerToDatabaseAndReturn(fio: "name 2"); - CatHasPawsDbContext.InsertSalaryToDatabaseAndReturn(worker1.Id); - CatHasPawsDbContext.InsertSalaryToDatabaseAndReturn(worker1.Id); - CatHasPawsDbContext.InsertSalaryToDatabaseAndReturn(worker2.Id); - //Act - var response = await HttpClient.GetAsync($"/api/salaries/getworkerrecords?fromDate={DateTime.UtcNow.AddDays(-1):MM/dd/yyyy HH:mm:ss}&toDate={DateTime.UtcNow.AddDays(1):MM/dd/yyyy HH:mm:ss}&id={worker1.Id}"); - //Assert - Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK)); - var data = await GetModelFromResponseAsync>(response); - Assert.That(data, Is.Not.Null); - Assert.Multiple(() => - { - Assert.That(data, Has.Count.EqualTo(2)); - Assert.That(data.All(x => x.WorkerId == worker1.Id)); - }); - } - - [Test] - public async Task GetList_ByWorker_OnlyInDatePeriod_ShouldSuccess_Test() - { - //Arrange - var worker1 = CatHasPawsDbContext.InsertWorkerToDatabaseAndReturn(fio: "name 1"); - var worker2 = CatHasPawsDbContext.InsertWorkerToDatabaseAndReturn(fio: "name 2"); - CatHasPawsDbContext.InsertSalaryToDatabaseAndReturn(worker1.Id, salaryDate: DateTime.UtcNow.AddDays(-2)); - CatHasPawsDbContext.InsertSalaryToDatabaseAndReturn(worker1.Id, salaryDate: DateTime.UtcNow.AddDays(-1).AddMinutes(5)); - CatHasPawsDbContext.InsertSalaryToDatabaseAndReturn(worker2.Id, salaryDate: DateTime.UtcNow.AddDays(-1).AddMinutes(5)); - CatHasPawsDbContext.InsertSalaryToDatabaseAndReturn(worker1.Id, salaryDate: DateTime.UtcNow.AddDays(1).AddMinutes(-5)); - CatHasPawsDbContext.InsertSalaryToDatabaseAndReturn(worker2.Id, salaryDate: DateTime.UtcNow.AddDays(1).AddMinutes(-5)); - CatHasPawsDbContext.InsertSalaryToDatabaseAndReturn(worker1.Id, salaryDate: DateTime.UtcNow.AddDays(-2)); - //Act - var response = await HttpClient.GetAsync($"/api/salaries/getworkerrecords?fromDate={DateTime.UtcNow.AddDays(-1):MM/dd/yyyy HH:mm:ss}&toDate={DateTime.UtcNow.AddDays(1):MM/dd/yyyy HH:mm:ss}&id={worker1.Id}"); - //Assert - Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK)); - var data = await GetModelFromResponseAsync>(response); - Assert.That(data, Is.Not.Null); - Assert.Multiple(() => - { - Assert.That(data, Has.Count.EqualTo(2)); - Assert.That(data.All(x => x.WorkerId == worker1.Id)); - }); - } - - [Test] - public async Task GetList_ByWorker_WhenDateIsIncorrect_ShouldBadRequest_Test() - { - //Arrange - var worker = CatHasPawsDbContext.InsertWorkerToDatabaseAndReturn(fio: "name 1"); - //Act - var response = await HttpClient.GetAsync($"/api/salaries/getworkerrecords?fromDate={DateTime.UtcNow.AddDays(1):MM/dd/yyyy HH:mm:ss}&toDate={DateTime.UtcNow.AddDays(-1):MM/dd/yyyy HH:mm:ss}&id={worker.Id}"); - //Assert - Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.BadRequest)); - } - - [Test] - public async Task GetList_ByWorker_WhenIdIsNotGuid_ShouldBadRequest_Test() - { - //Act - var response = await HttpClient.GetAsync($"/api/salaries/getworkerrecords?fromDate={DateTime.UtcNow.AddDays(-1):MM/dd/yyyy HH:mm:ss}&toDate={DateTime.UtcNow.AddDays(1):MM/dd/yyyy HH:mm:ss}&id=id"); - //Assert - Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.BadRequest)); - } - - [Test] - public async Task Calculate_ShouldSuccess_Test() - { - //Arrange - var post = CatHasPawsDbContext.InsertPostToDatabaseAndReturn(salary: 1000); - var worker = CatHasPawsDbContext.InsertWorkerToDatabaseAndReturn(fio: "name", postId: post.PostId); - var manufacturer = CatHasPawsDbContext.InsertManufacturerToDatabaseAndReturn(); - var product = CatHasPawsDbContext.InsertProductToDatabaseAndReturn(manufacturer.Id, price: 100); - CatHasPawsDbContext.InsertSaleToDatabaseAndReturn(worker.Id, null, sum: 2000, products: [(product.Id, 10, 1.1)]); - CatHasPawsDbContext.InsertSaleToDatabaseAndReturn(worker.Id, null, sum: 2000, products: [(product.Id, 10, 1.1)]); - //Act - var response = await HttpClient.PostAsync($"/api/salaries/calculate?date={DateTime.UtcNow:MM/dd/yyyy}", null); - //Assert - Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.NoContent)); - var salaries = CatHasPawsDbContext.GetSalariesFromDatabaseByWorkerId(worker.Id); - Assert.Multiple(() => - { - Assert.That(salaries, Has.Length.EqualTo(1)); - Assert.That(salaries.First().WorkerSalary, Is.EqualTo(1400)); - Assert.That(salaries.First().SalaryDate.Month, Is.EqualTo(DateTime.UtcNow.Month)); - }); - } - - [Test] - public async Task Calculate_WithSeveralWorkers_ShouldSuccess_Test() - { - //Arrange - var post = CatHasPawsDbContext.InsertPostToDatabaseAndReturn(salary: 1000); - var worker1 = CatHasPawsDbContext.InsertWorkerToDatabaseAndReturn(fio: "name 1", postId: post.PostId); - var worker2 = CatHasPawsDbContext.InsertWorkerToDatabaseAndReturn(fio: "name 2", postId: post.PostId); - var worker3 = CatHasPawsDbContext.InsertWorkerToDatabaseAndReturn(fio: "name 3", postId: post.PostId); - var manufacturer = CatHasPawsDbContext.InsertManufacturerToDatabaseAndReturn(); - var product = CatHasPawsDbContext.InsertProductToDatabaseAndReturn(manufacturer.Id, price: 100); - CatHasPawsDbContext.InsertSaleToDatabaseAndReturn(worker1.Id, null, sum: 2000, products: [(product.Id, 10, 1.1)]); - CatHasPawsDbContext.InsertSaleToDatabaseAndReturn(worker1.Id, null, sum: 2000, products: [(product.Id, 10, 1.1)]); - CatHasPawsDbContext.InsertSaleToDatabaseAndReturn(worker2.Id, null, sum: 2000, products: [(product.Id, 10, 1.1)]); - CatHasPawsDbContext.InsertSaleToDatabaseAndReturn(worker3.Id, null, sum: 2000, products: [(product.Id, 10, 1.1)]); - //Act - var response = await HttpClient.PostAsync($"/api/salaries/calculate?date={DateTime.UtcNow:MM/dd/yyyy}", null); - //Assert - Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.NoContent)); - var salaries = CatHasPawsDbContext.Salaries.ToArray(); - Assert.That(salaries, Has.Length.EqualTo(3)); - } - - [Test] - public async Task Calculate_WithoutWorkers_ShouldSuccess_Test() - { - //Act - var response = await HttpClient.PostAsync($"/api/salaries/calculate?date={DateTime.UtcNow:MM/dd/yyyy}", null); - //Assert - Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.NoContent)); - var salaries = CatHasPawsDbContext.Salaries.ToArray(); - Assert.That(salaries, Has.Length.EqualTo(0)); - } - - [Test] - public async Task Calculate_WithoutSalesByWorker_ShouldSuccess_Test() - { - //Arrange - var post = CatHasPawsDbContext.InsertPostToDatabaseAndReturn(salary: 1000); - var worker1 = CatHasPawsDbContext.InsertWorkerToDatabaseAndReturn(fio: "name 1", postId: post.PostId); - var worker2 = CatHasPawsDbContext.InsertWorkerToDatabaseAndReturn(fio: "name 2", postId: post.PostId); - var manufacturer = CatHasPawsDbContext.InsertManufacturerToDatabaseAndReturn(); - var product = CatHasPawsDbContext.InsertProductToDatabaseAndReturn(manufacturer.Id, price: 100); - CatHasPawsDbContext.InsertSaleToDatabaseAndReturn(worker1.Id, null, saleDate: DateTime.UtcNow.AddMonths(-1), sum: 2000, products: [(product.Id, 10, 1.1)]); - CatHasPawsDbContext.InsertSaleToDatabaseAndReturn(worker2.Id, null, sum: 2000, products: [(product.Id, 10, 1.1)]); - //Act - var response = await HttpClient.PostAsync($"/api/salaries/calculate?date={DateTime.UtcNow:MM/dd/yyyy}", null); - //Assert - Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.NoContent)); - var salary1 = CatHasPawsDbContext.GetSalariesFromDatabaseByWorkerId(worker1.Id).First().WorkerSalary; - var salary2 = CatHasPawsDbContext.GetSalariesFromDatabaseByWorkerId(worker2.Id).First().WorkerSalary; - Assert.That(salary1, Is.Not.EqualTo(salary2)); - } - - [Test] - public async Task Calculate_PostNotFound_ShouldNotFound_Test() - { - //Arrange - CatHasPawsDbContext.InsertPostToDatabaseAndReturn(); - var worker = CatHasPawsDbContext.InsertWorkerToDatabaseAndReturn(fio: "name", postId: Guid.NewGuid().ToString()); - var manufacturer = CatHasPawsDbContext.InsertManufacturerToDatabaseAndReturn(); - var product = CatHasPawsDbContext.InsertProductToDatabaseAndReturn(manufacturer.Id, price: 100); - CatHasPawsDbContext.InsertSaleToDatabaseAndReturn(worker.Id, null, sum: 2000, products: [(product.Id, 10, 1.1)]); - CatHasPawsDbContext.InsertSaleToDatabaseAndReturn(worker.Id, null, sum: 2000, products: [(product.Id, 10, 1.1)]); - //Act - var response = await HttpClient.PostAsync($"/api/salaries/calculate?date={DateTime.UtcNow:MM/dd/yyyy}", null); - //Assert - Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.NotFound)); - } - - private static void AssertElement(SalaryViewModel? actual, Salary expected) - { - Assert.That(actual, Is.Not.Null); - Assert.Multiple(() => - { - Assert.That(actual.WorkerFIO, Is.EqualTo(expected.Worker!.FIO)); - Assert.That(actual.Salary, Is.EqualTo(expected.WorkerSalary)); - }); - } -} \ No newline at end of file diff --git a/TheCatHasPawsProject/CatHasPawsWebApi/Adapters/SalaryAdapter.cs b/TheCatHasPawsProject/CatHasPawsWebApi/Adapters/SalaryAdapter.cs deleted file mode 100644 index 66ce642..0000000 --- a/TheCatHasPawsProject/CatHasPawsWebApi/Adapters/SalaryAdapter.cs +++ /dev/null @@ -1,119 +0,0 @@ -using AutoMapper; -using CatHasPawsContratcs.AdapterContracts.OperationResponses; -using CatHasPawsContratcs.AdapterContracts; -using CatHasPawsContratcs.BusinessLogicsContracts; -using CatHasPawsContratcs.Exceptions; -using CatHasPawsContratcs.ViewModels; -using CatHasPawsContratcs.DataModels; - -namespace CatHasPawsWebApi.Adapters; - -public class SalaryAdapter : ISalaryAdapter -{ - private readonly ISalaryBusinessLogicContract _salaryBusinessLogicContract; - - private readonly ILogger _logger; - - private readonly Mapper _mapper; - - public SalaryAdapter(ISalaryBusinessLogicContract salaryBusinessLogicContract, ILogger logger) - { - _salaryBusinessLogicContract = salaryBusinessLogicContract; - _logger = logger; - var config = new MapperConfiguration(cfg => - { - cfg.CreateMap(); - }); - _mapper = new Mapper(config); - } - - public SalaryOperationResponse GetListByPeriod(DateTime fromDate, DateTime toDate) - { - try - { - return SalaryOperationResponse.OK([.. _salaryBusinessLogicContract.GetAllSalariesByPeriod(fromDate, toDate).Select(x => _mapper.Map(x))]); - } - catch (ValidationException ex) - { - _logger.LogError(ex, "ValidationException"); - return SalaryOperationResponse.BadRequest($"Incorrect data transmitted: {ex.Message}"); - } - catch (IncorrectDatesException ex) - { - _logger.LogError(ex, "IncorrectDatesException"); - return SalaryOperationResponse.BadRequest($"Incorrect dates: {ex.Message}"); - } - catch (NullListException) - { - _logger.LogError("NullListException"); - return SalaryOperationResponse.NotFound("The list is not initialized"); - } - catch (StorageException ex) - { - _logger.LogError(ex, "StorageException"); - return SalaryOperationResponse.InternalServerError($"Error while working with data storage: {ex.InnerException!.Message}"); - } - catch (Exception ex) - { - _logger.LogError(ex, "Exception"); - return SalaryOperationResponse.InternalServerError(ex.Message); - } - } - - public SalaryOperationResponse GetListByPeriodByWorker(DateTime fromDate, DateTime toDate, string workerId) - { - try - { - return SalaryOperationResponse.OK([.. _salaryBusinessLogicContract.GetAllSalariesByPeriodByWorker(fromDate, toDate, workerId).Select(x => _mapper.Map(x))]); - } - catch (ValidationException ex) - { - _logger.LogError(ex, "ValidationException"); - return SalaryOperationResponse.BadRequest($"Incorrect data transmitted: {ex.Message}"); - } - catch (IncorrectDatesException ex) - { - _logger.LogError(ex, "IncorrectDatesException"); - return SalaryOperationResponse.BadRequest($"Incorrect dates: {ex.Message}"); - } - catch (NullListException) - { - _logger.LogError("NullListException"); - return SalaryOperationResponse.NotFound("The list is not initialized"); - } - catch (StorageException ex) - { - _logger.LogError(ex, "StorageException"); - return SalaryOperationResponse.InternalServerError($"Error while working with data storage: {ex.InnerException!.Message}"); - } - catch (Exception ex) - { - _logger.LogError(ex, "Exception"); - return SalaryOperationResponse.InternalServerError(ex.Message); - } - } - - public SalaryOperationResponse CalculateSalary(DateTime date) - { - try - { - _salaryBusinessLogicContract.CalculateSalaryByMounth(date); - return SalaryOperationResponse.NoContent(); - } - catch (NullListException) - { - _logger.LogError("NullListException"); - return SalaryOperationResponse.NotFound("The list is not initialized"); - } - catch (StorageException ex) - { - _logger.LogError(ex, "StorageException"); - return SalaryOperationResponse.InternalServerError($"Error while working with data storage: {ex.InnerException!.Message}"); - } - catch (Exception ex) - { - _logger.LogError(ex, "Exception"); - return SalaryOperationResponse.InternalServerError(ex.Message); - } - } -} \ No newline at end of file diff --git a/TheCatHasPawsProject/CatHasPawsWebApi/Controllers/SalariesController.cs b/TheCatHasPawsProject/CatHasPawsWebApi/Controllers/SalariesController.cs deleted file mode 100644 index 4cb42aa..0000000 --- a/TheCatHasPawsProject/CatHasPawsWebApi/Controllers/SalariesController.cs +++ /dev/null @@ -1,32 +0,0 @@ -using CatHasPawsContratcs.AdapterContracts; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; - -namespace CatHasPawsWebApi.Controllers; - -[Authorize] -[Route("api/[controller]/[action]")] -[ApiController] -[Produces("application/json")] -public class SalariesController(ISalaryAdapter adapter) : ControllerBase -{ - private readonly ISalaryAdapter _adapter = adapter; - - [HttpGet] - public IActionResult GetRecords(DateTime fromDate, DateTime toDate) - { - return _adapter.GetListByPeriod(fromDate, toDate).GetResponse(Request, Response); - } - - [HttpGet] - public IActionResult GetWorkerRecords(string id, DateTime fromDate, DateTime toDate) - { - return _adapter.GetListByPeriodByWorker(fromDate, toDate, id).GetResponse(Request, Response); - } - - [HttpPost] - public IActionResult Calculate(DateTime date) - { - return _adapter.CalculateSalary(date).GetResponse(Request, Response); - } -} \ No newline at end of file diff --git a/TheCatHasPawsProject/CatHasPawsWebApi/Program.cs b/TheCatHasPawsProject/CatHasPawsWebApi/Program.cs index 05ab1a0..09237e8 100644 --- a/TheCatHasPawsProject/CatHasPawsWebApi/Program.cs +++ b/TheCatHasPawsProject/CatHasPawsWebApi/Program.cs @@ -71,7 +71,6 @@ builder.Services.AddTransient(); builder.Services.AddTransient(); builder.Services.AddTransient(); builder.Services.AddTransient(); -builder.Services.AddTransient(); // Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi builder.Services.AddOpenApi();