From 0e038cdb3d3ccd5347cab455067cbdf6b4e55175 Mon Sep 17 00:00:00 2001 From: esantangelo <enzo020895@gmail.com> Date: Sun, 29 Nov 2020 20:52:43 -0300 Subject: [PATCH] AddProfessorToCourse user professor --- .../Tsi1.Api/Controllers/CourseController.cs | 2 +- .../Services/CourseService.cs | 27 ++++++++++++++++++- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/Tsi1.Api/Tsi1.Api/Controllers/CourseController.cs b/Tsi1.Api/Tsi1.Api/Controllers/CourseController.cs index dd4de59..90c4e05 100644 --- a/Tsi1.Api/Tsi1.Api/Controllers/CourseController.cs +++ b/Tsi1.Api/Tsi1.Api/Controllers/CourseController.cs @@ -106,7 +106,7 @@ namespace Tsi1.Api.Controllers return Ok(); } - [Authorize(Roles = UserTypes.FacultyAdmin)] + [Authorize(Roles = UserTypes.FacultyAdmin + ", " + UserTypes.Professor)] [HttpPost("AddProfessorToCourse")] public async Task<IActionResult> AddProfessorToCourse(ProfessorCourseDto professorCourseDto) { diff --git a/Tsi1.Api/Tsi1.BusinessLayer/Services/CourseService.cs b/Tsi1.Api/Tsi1.BusinessLayer/Services/CourseService.cs index bc1eeb8..b06b5c4 100644 --- a/Tsi1.Api/Tsi1.BusinessLayer/Services/CourseService.cs +++ b/Tsi1.Api/Tsi1.BusinessLayer/Services/CourseService.cs @@ -149,7 +149,7 @@ namespace Tsi1.BusinessLayer.Services return result; } - public async Task<ServiceResult<bool>> AddProfessorToCourse(ProfessorCourseDto professorCourseDto) + public async Task<ServiceResult<bool>> AddProfessorToCourse(ProfessorCourseDto professorCourseDto, int userId, string userType) { var result = new ServiceResult<bool>(); @@ -181,6 +181,31 @@ namespace Tsi1.BusinessLayer.Services return result; } + var myUser = await _context.Users + .AsNoTracking() + .FirstOrDefaultAsync(x => x.Id == userId); + + if (myUser.TenantId != user.TenantId) + { + result.HasError = true; + result.AddMessage(string.Format(ErrorMessages.InvalidTenant, myUser.TenantId)); + return result; + } + + if (userType == UserTypes.Professor) + { + var isProfessorCourse = await _context.ProfessorCourses + .AsNoTracking() + .AnyAsync(x => x.ProfessorId == myUser.ProfessorId); + + if (!isProfessorCourse) + { + result.HasError = true; + result.AddMessage(string.Format(ErrorMessages.ProfessorCourseDoesNotExists, myUser.FirstName + " " + myUser.LastName, course.Name)); + return result; + } + } + var existingProfessorCourse = await _context.ProfessorCourses .FirstOrDefaultAsync(x => x.ProfessorId == user.ProfessorId && x.CourseId == course.Id); -- GitLab