From 58fc93bfba8ce9f36df85af7f6dc8c2e35d49eb3 Mon Sep 17 00:00:00 2001 From: esantangelo <enzo020895@gmail.com> Date: Sat, 7 Nov 2020 13:46:45 -0300 Subject: [PATCH] add endpoints GetStudents and GetProfessors --- .../Tsi1.Api/Controllers/UserController.cs | 33 +++++++++++++++++++ .../Interfaces/IUserService.cs | 4 +++ .../Services/UserService.cs | 30 +++++++++++++++++ 3 files changed, 67 insertions(+) diff --git a/Tsi1.Api/Tsi1.Api/Controllers/UserController.cs b/Tsi1.Api/Tsi1.Api/Controllers/UserController.cs index ac1b1b8..e2abf68 100644 --- a/Tsi1.Api/Tsi1.Api/Controllers/UserController.cs +++ b/Tsi1.Api/Tsi1.Api/Controllers/UserController.cs @@ -300,6 +300,39 @@ namespace Tsi1.Api.Controllers return Ok(result.Data); } + [Authorize(Roles = UserTypes.FacultyAdmin)] + [HttpGet("GetStudents")] + public async Task<IActionResult> GetStudents() + { + var tenantId = int.Parse(HttpContext.User.Claims.FirstOrDefault(x => x.Type == "TenantId").Value); + + var result = await _userService.GetStudents(tenantId); + + if (result.HasError) + { + return BadRequest(result.Message); + } + + return Ok(result.Data); + } + + [Authorize(Roles = UserTypes.FacultyAdmin)] + [HttpGet("GetProfessors")] + public async Task<IActionResult> GetProfessors() + { + var tenantId = int.Parse(HttpContext.User.Claims.FirstOrDefault(x => x.Type == "TenantId").Value); + + var result = await _userService.GetProfessors(tenantId); + + if (result.HasError) + { + return BadRequest(result.Message); + } + + return Ok(result.Data); + } + + [Authorize(Roles = UserTypes.Student + ", " + UserTypes.Professor)] [HttpGet("GetById/{userId}")] public async Task<IActionResult> GetById(int userId) diff --git a/Tsi1.Api/Tsi1.BusinessLayer/Interfaces/IUserService.cs b/Tsi1.Api/Tsi1.BusinessLayer/Interfaces/IUserService.cs index c031f87..1fbf3d8 100644 --- a/Tsi1.Api/Tsi1.BusinessLayer/Interfaces/IUserService.cs +++ b/Tsi1.Api/Tsi1.BusinessLayer/Interfaces/IUserService.cs @@ -29,5 +29,9 @@ namespace Tsi1.BusinessLayer.Interfaces Task<ServiceResult<bool>> Delete(int userId); Task<ServiceResult<UserTypeDto>> GetUserType(int userId); + + Task<ServiceResult<List<UserPreviewDto>>> GetStudents(int tenantId); + + Task<ServiceResult<List<UserPreviewDto>>> GetProfessors(int tenantId); } } diff --git a/Tsi1.Api/Tsi1.BusinessLayer/Services/UserService.cs b/Tsi1.Api/Tsi1.BusinessLayer/Services/UserService.cs index d664244..f7710da 100644 --- a/Tsi1.Api/Tsi1.BusinessLayer/Services/UserService.cs +++ b/Tsi1.Api/Tsi1.BusinessLayer/Services/UserService.cs @@ -302,5 +302,35 @@ namespace Tsi1.BusinessLayer.Services return result; } + + public async Task<ServiceResult<List<UserPreviewDto>>> GetStudents(int tenantId) + { + var result = new ServiceResult<List<UserPreviewDto>>(); + + var users = await _context.Users + .Where(x => x.UserType.Name == UserTypes.Student && x.TenantId == tenantId) + .ToListAsync(); + + var usersDto = _mapper.Map<List<UserPreviewDto>>(users); + + result.Data = usersDto; + + return result; + } + + public async Task<ServiceResult<List<UserPreviewDto>>> GetProfessors(int tenantId) + { + var result = new ServiceResult<List<UserPreviewDto>>(); + + var users = await _context.Users + .Where(x => x.UserType.Name == UserTypes.Professor && x.TenantId == tenantId) + .ToListAsync(); + + var usersDto = _mapper.Map<List<UserPreviewDto>>(users); + + result.Data = usersDto; + + return result; + } } } -- GitLab