From 0f73663b0ad2543975f0971ea5aa2b04e3277f7f Mon Sep 17 00:00:00 2001 From: esantangelo <enzo020895@gmail.com> Date: Sat, 31 Oct 2020 14:56:27 -0300 Subject: [PATCH] abm tenant --- .../Tsi1.Api/Controllers/TenantController.cs | 38 ++++++++++++++++ .../Interfaces/ITenantService.cs | 4 ++ .../Services/TenantService.cs | 43 +++++++++++++++++++ 3 files changed, 85 insertions(+) diff --git a/Tsi1.Api/Tsi1.Api/Controllers/TenantController.cs b/Tsi1.Api/Tsi1.Api/Controllers/TenantController.cs index f89bb6b..738bc5b 100644 --- a/Tsi1.Api/Tsi1.Api/Controllers/TenantController.cs +++ b/Tsi1.Api/Tsi1.Api/Controllers/TenantController.cs @@ -49,5 +49,43 @@ namespace Tsi1.Api.Controllers return Ok(result.Data); } + + [Authorize(Roles = UserTypes.UdelarAdmin)] + [HttpPut("Modify/{tenantId}")] + public async Task<IActionResult> Modify(int tenantId, TenantCreateDto tenantDto) + { + var result = await _tenantService.Modify(tenantId, tenantDto); + + if (result.HasError) + { + return BadRequest(result.Message); + } + + if (result.Data == false) + { + return NotFound(result.Message); + } + + return Ok(); + } + + [Authorize(Roles = UserTypes.UdelarAdmin)] + [HttpDelete("Delete/{tenantId}")] + public async Task<IActionResult> Delete(int tenantId) + { + var result = await _tenantService.Delete(tenantId); + + if (result.HasError) + { + return BadRequest(result.Message); + } + + if (result.Data == false) + { + return NotFound(result.Message); + } + + return Ok(); + } } } diff --git a/Tsi1.Api/Tsi1.BusinessLayer/Interfaces/ITenantService.cs b/Tsi1.Api/Tsi1.BusinessLayer/Interfaces/ITenantService.cs index 90bf95b..ea42bbc 100644 --- a/Tsi1.Api/Tsi1.BusinessLayer/Interfaces/ITenantService.cs +++ b/Tsi1.Api/Tsi1.BusinessLayer/Interfaces/ITenantService.cs @@ -14,5 +14,9 @@ namespace Tsi1.BusinessLayer.Interfaces Task<ServiceResult<List<TenantPreviewDto>>> GetAll(); Task<ServiceResult<TenantPreviewDto>> Create(TenantCreateDto newTenant); + + Task<ServiceResult<bool>> Modify(int tenantId, TenantCreateDto tenantDto); + + Task<ServiceResult<bool>> Delete(int tenantId); } } diff --git a/Tsi1.Api/Tsi1.BusinessLayer/Services/TenantService.cs b/Tsi1.Api/Tsi1.BusinessLayer/Services/TenantService.cs index c265906..8f62967 100644 --- a/Tsi1.Api/Tsi1.BusinessLayer/Services/TenantService.cs +++ b/Tsi1.Api/Tsi1.BusinessLayer/Services/TenantService.cs @@ -79,5 +79,48 @@ namespace Tsi1.BusinessLayer.Services return result; } + public async Task<ServiceResult<bool>> Modify(int tenantId, TenantCreateDto tenantDto) + { + var result = new ServiceResult<bool>(); + + var tenant = await _context.Tenants + .FirstOrDefaultAsync(x => x.Id == tenantId); + + if (tenant == null) + { + result.Message = string.Format(ErrorMessages.TenantDoesNotExist, tenantId); + return result; + } + + _mapper.Map(tenantDto, tenant); + + await _context.SaveChangesAsync(); + + result.Data = true; + + return result; + } + + public async Task<ServiceResult<bool>> Delete(int tenantId) + { + var result = new ServiceResult<bool>(); + + var tenant = await _context.Tenants + .FirstOrDefaultAsync(x => x.Id == tenantId); + + if (tenant == null) + { + result.Message = string.Format(ErrorMessages.TenantDoesNotExist, tenantId); + return result; + } + + _context.Tenants.Remove(tenant); + + await _context.SaveChangesAsync(); + + result.Data = true; + + return result; + } } } -- GitLab