diff --git a/Tsi1.Api/Tsi1.Api/Controllers/ActivityController.cs b/Tsi1.Api/Tsi1.Api/Controllers/ActivityController.cs index 6987480b971ac0672e38ee36c69abb23d750a41e..4dd5d23e98f3fa4396be61df98a4da0d5d72579d 100644 --- a/Tsi1.Api/Tsi1.Api/Controllers/ActivityController.cs +++ b/Tsi1.Api/Tsi1.Api/Controllers/ActivityController.cs @@ -81,64 +81,5 @@ namespace Tsi1.Api.Controllers return Ok(); } - [Authorize(Roles = UserTypes.Professor)] - [HttpPut("AddOrModifyGrade")] - public async Task<IActionResult> AddOrModifyGrade(GradeDto gradeDto) - { - var userId = int.Parse(HttpContext.User.Claims.FirstOrDefault(x => x.Type == "Id").Value); - var result = await _activityService.AddOrModifyGrade(gradeDto, userId); - - if (result.HasError) - { - return BadRequest(result.Message); - } - - return Ok(result.Data); - } - - [Authorize(Roles = UserTypes.Professor)] - [HttpDelete("DeleteGrade/{activityId}/{userId}")] - public async Task<IActionResult> DeleteGrade(int activityId, int userId) - { - var myUserId = int.Parse(HttpContext.User.Claims.FirstOrDefault(x => x.Type == "Id").Value); - var result = await _activityService.DeleteGrade(myUserId, activityId, userId); - - if (result.HasError) - { - return BadRequest(result.Message); - } - - return Ok(); - } - - [Authorize(Roles = UserTypes.Student)] - [HttpGet("GetMyGrades/{activityId}")] - public async Task<IActionResult> GetMyGrades(int activityId) - { - var userId = int.Parse(HttpContext.User.Claims.FirstOrDefault(x => x.Type == "Id").Value); - var result = await _activityService.GetMyGrades(activityId, userId); - - if (result.HasError) - { - return BadRequest(result.Message); - } - - return Ok(result.Data); - } - - [Authorize(Roles = UserTypes.Professor + ", " + UserTypes.FacultyAdmin)] - [HttpGet("GetAllGrades/{activityId}")] - public async Task<IActionResult> GetAllGrades(int activityId) - { - var userId = int.Parse(HttpContext.User.Claims.FirstOrDefault(x => x.Type == "Id").Value); - var result = await _activityService.GetAllGrades(activityId, userId); - - if (result.HasError) - { - return BadRequest(result.Message); - } - - return Ok(result.Data); - } } } diff --git a/Tsi1.Api/Tsi1.Api/Controllers/EvaluationController.cs b/Tsi1.Api/Tsi1.Api/Controllers/EvaluationController.cs new file mode 100644 index 0000000000000000000000000000000000000000..669c0e22058ae0a6b59d4c47c4e7163824bd8c10 --- /dev/null +++ b/Tsi1.Api/Tsi1.Api/Controllers/EvaluationController.cs @@ -0,0 +1,138 @@ +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Tsi1.BusinessLayer.Dtos; +using Tsi1.BusinessLayer.Helpers; +using Tsi1.BusinessLayer.Interfaces; + +namespace Tsi1.Api.Controllers +{ + [Route("api/[controller]")] + [ApiController] + public class EvaluationController : ControllerBase + { + private readonly IEvaluationService _evaluationService; + + public EvaluationController(IEvaluationService evaluationService) + { + _evaluationService = evaluationService; + } + + [Authorize(Roles = UserTypes.Student)] + [HttpPost("Registration/{evaluationId}")] + public async Task<IActionResult> GetAll(int evaluationId) + { + var userId = int.Parse(HttpContext.User.Claims.FirstOrDefault(x => x.Type == "Id").Value); + + var result = await _evaluationService.Registration(evaluationId, userId); + + if (result.HasError) + { + return BadRequest(result.Message); + } + + return Ok(result.Data); + } + + [Authorize(Roles = UserTypes.Student)] + [HttpPost("CancelRegistration/{evaluationId}")] + public async Task<IActionResult> CancelRegistration(int evaluationId) + { + var userId = int.Parse(HttpContext.User.Claims.FirstOrDefault(x => x.Type == "Id").Value); + + var result = await _evaluationService.CancelRegistration(evaluationId, userId); + + if (result.HasError) + { + return BadRequest(result.Message); + } + + return Ok(result.Data); + } + + [Authorize(Roles = UserTypes.Student)] + [HttpPost("SubmitLaboratory/{evaluationId}")] + public async Task<IActionResult> SubmitLaboratory(FileDto fileDto, int evaluationId) + { + var userId = int.Parse(HttpContext.User.Claims.FirstOrDefault(x => x.Type == "Id").Value); + + var result = await _evaluationService.SubmitLaboratory(fileDto, evaluationId, userId); + + if (result.HasError) + { + return BadRequest(result.Message); + } + + return Ok(result.Data); + } + + [Authorize(Roles = UserTypes.Student)] + [HttpDelete("DeleteLaboratory/{submissionId}")] + public async Task<IActionResult> DeleteLaboratory(int submissionId) + { + var userId = int.Parse(HttpContext.User.Claims.FirstOrDefault(x => x.Type == "Id").Value); + + var result = await _evaluationService.DeleteLaboratory(submissionId, userId); + + if (result.HasError) + { + return BadRequest(result.Message); + } + + return Ok(result.Data); + } + + [Authorize(Roles = UserTypes.Student)] + [HttpGet("GetMyEvaluationInscriptions/{courseId}")] + public async Task<IActionResult> GetMyEvaluationInscriptions(int courseId) + { + var userId = int.Parse(HttpContext.User.Claims.FirstOrDefault(x => x.Type == "Id").Value); + + var result = await _evaluationService.GetMyEvaluationInscriptions(userId, courseId); + + if (result.HasError) + { + return BadRequest(result.Message); + } + + return Ok(result.Data); + } + + [Authorize(Roles = UserTypes.Professor)] + [HttpGet("GetAllEvaluationInscriptions/{evaluationId}")] + public async Task<IActionResult> GetAllEvaluationInscriptions(int evaluationId) + { + var userId = int.Parse(HttpContext.User.Claims.FirstOrDefault(x => x.Type == "Id").Value); + + var result = await _evaluationService.GetAllEvaluationInscriptions(userId, evaluationId); + + if (result.HasError) + { + return BadRequest(result.Message); + } + + return Ok(result.Data); + } + + //QualifyEvaluationInscription(EvaluationInscriptionModifyDto evaluationInscriptionDto, int userId); + [Authorize(Roles = UserTypes.Professor)] + [HttpPost("QualifyEvaluationInscription")] + public async Task<IActionResult> SubmitLaboratory(EvaluationInscriptionModifyDto evaluationInscriptionDto) + { + var userId = int.Parse(HttpContext.User.Claims.FirstOrDefault(x => x.Type == "Id").Value); + + var result = await _evaluationService.QualifyEvaluationInscription(evaluationInscriptionDto, userId); + + if (result.HasError) + { + return BadRequest(result.Message); + } + + return Ok(result.Data); + } + } +} diff --git a/Tsi1.Api/Tsi1.Api/Startup.cs b/Tsi1.Api/Tsi1.Api/Startup.cs index 5718b4a826b7bb99f6b3183540f37e2dfb3855f4..1f237eccf6808788164953e11f50f003db17c27f 100644 --- a/Tsi1.Api/Tsi1.Api/Startup.cs +++ b/Tsi1.Api/Tsi1.Api/Startup.cs @@ -106,6 +106,7 @@ namespace Tsi1.Api services.AddScoped<ICommunicationService, CommunicationService>(); services.AddScoped<IChatService, ChatService>(); services.AddScoped<IActivityService, ActivityService>(); + services.AddScoped<IEvaluationService, EvaluationService>(); services.AddSingleton<PresenceTracker>();