Skip to content
Snippets Groups Projects

bedelia

Merged Lucca Santangelo Dodera requested to merge feature/bedelia into develop
11 files
+ 183
3
Compare changes
  • Side-by-side
  • Inline
Files
11
@@ -16,10 +16,14 @@ namespace Tsi1.Api.Controllers
public class CourseController : ControllerBase
{
private readonly ICourseService _courseService;
private readonly IUserService _userService;
private readonly IBedeliaService _bedeliaService;
public CourseController(ICourseService courseService)
public CourseController(ICourseService courseService, IUserService userService, IBedeliaService bedeliaService)
{
_courseService = courseService;
_userService = userService;
_bedeliaService = bedeliaService;
}
[Authorize(Roles = UserTypes.Student + ", " + UserTypes.Professor)]
@@ -54,15 +58,20 @@ namespace Tsi1.Api.Controllers
return Ok(result.Data);
}
[Authorize(Roles = UserTypes.Student)]
[HttpPost("Matriculate/{courseId}")]
public async Task<IActionResult> Matriculate(int courseId)
{
var userId = int.Parse(HttpContext.User.Claims.FirstOrDefault(x => x.Type == "Id").Value);
var user = await _userService.GetById(userId);
var response = await _bedeliaService.IsValidUser(user.Data.Student.IdentityCard);
if (response.HasError)
{
return BadRequest(response.Message);
}
var result = await _courseService.Matriculate(userId, courseId);
if (result.HasError)
{
return BadRequest(result.Message);
@@ -245,5 +254,33 @@ namespace Tsi1.Api.Controllers
return Ok(result.Data);
}
[Authorize(Roles = UserTypes.Professor)]
[HttpPost("CloseRecord/{courseId}")]
public async Task<IActionResult> CloseRecord(int courseId)
{
var courseResult = await _courseService.GetById(courseId);
if (courseResult.HasError)
{
return BadRequest(courseResult.Message);
}
var userResult = await _userService.GetUserGrades(courseId);
if (userResult.HasError)
{
return BadRequest(userResult.Message);
}
var courseName = courseResult.Data.Name;
var userGrades = userResult.Data;
var result = await _bedeliaService.CloseRecord(courseName, userGrades);
if (result.HasError)
{
return BadRequest(result.Message);
}
return Ok();
}
}
}
Loading