From acebb09e0b9b230c10da6cc3b6ba7158cc983fda Mon Sep 17 00:00:00 2001 From: esantangelo <enzo020895@gmail.com> Date: Sat, 12 Dec 2020 17:18:36 -0300 Subject: [PATCH] add endpoint activity GetById --- .../Controllers/ActivityController.cs | 14 ++++++++++++++ .../Tsi1.BusinessLayer/Dtos/ActivityDto.cs | 2 ++ .../Interfaces/IActivityService.cs | 3 ++- .../Services/ActivityService.cs | 19 +++++++++++++++++++ .../Services/EvaluationService.cs | 2 +- 5 files changed, 38 insertions(+), 2 deletions(-) diff --git a/Tsi1.Api/Tsi1.Api/Controllers/ActivityController.cs b/Tsi1.Api/Tsi1.Api/Controllers/ActivityController.cs index 4dd5d23..23a333a 100644 --- a/Tsi1.Api/Tsi1.Api/Controllers/ActivityController.cs +++ b/Tsi1.Api/Tsi1.Api/Controllers/ActivityController.cs @@ -36,6 +36,20 @@ namespace Tsi1.Api.Controllers return Ok(result.Data); } + [Authorize(Roles = UserTypes.FacultyAdmin + ", " + UserTypes.Professor + ", " + UserTypes.Student)] + [HttpGet("GetById/{activityId}")] + public async Task<IActionResult> GetById(int activityId) + { + var result = await _activityService.GetById(activityId); + + if (result.HasError) + { + return BadRequest(result.Message); + } + + return Ok(result.Data); + } + [Authorize(Roles = UserTypes.FacultyAdmin + ", " + UserTypes.Professor)] [HttpPost("Create")] public async Task<IActionResult> Create(ActivityCreateDto newActivity) diff --git a/Tsi1.Api/Tsi1.BusinessLayer/Dtos/ActivityDto.cs b/Tsi1.Api/Tsi1.BusinessLayer/Dtos/ActivityDto.cs index 831e4f6..f7da8d1 100644 --- a/Tsi1.Api/Tsi1.BusinessLayer/Dtos/ActivityDto.cs +++ b/Tsi1.Api/Tsi1.BusinessLayer/Dtos/ActivityDto.cs @@ -15,5 +15,7 @@ namespace Tsi1.BusinessLayer.Dtos public bool IsVideoConference { get; set; } public int EvaluationId { get; set; } + + public EvaluationDetailDto Evaluation { get; set; } } } diff --git a/Tsi1.Api/Tsi1.BusinessLayer/Interfaces/IActivityService.cs b/Tsi1.Api/Tsi1.BusinessLayer/Interfaces/IActivityService.cs index a8dfd19..754f968 100644 --- a/Tsi1.Api/Tsi1.BusinessLayer/Interfaces/IActivityService.cs +++ b/Tsi1.Api/Tsi1.BusinessLayer/Interfaces/IActivityService.cs @@ -15,6 +15,7 @@ namespace Tsi1.BusinessLayer.Interfaces Task<ServiceResult<int>> Modify(int activityId, ActivityModifyDto activityDto, int userId); Task<ServiceResult<int>> Delete(int activityId, int userId); - Task<ServiceResult<int>> ActivityValidation(int activityId, int userId); + Task<ServiceResult<int>> ActivityValidation(int activityId, int userId); + Task<ServiceResult<ActivityDto>> GetById(int activityId); } } diff --git a/Tsi1.Api/Tsi1.BusinessLayer/Services/ActivityService.cs b/Tsi1.Api/Tsi1.BusinessLayer/Services/ActivityService.cs index 67c239f..cd22f21 100644 --- a/Tsi1.Api/Tsi1.BusinessLayer/Services/ActivityService.cs +++ b/Tsi1.Api/Tsi1.BusinessLayer/Services/ActivityService.cs @@ -266,5 +266,24 @@ namespace Tsi1.BusinessLayer.Services return result; } + public async Task<ServiceResult<ActivityDto>> GetById(int activityId) + { + var result = new ServiceResult<ActivityDto>(); + + var activity = await _context.Activities + .AsNoTracking() + .Include(x => x.Evaluation) + .FirstOrDefaultAsync(x => x.Id == activityId); + + if (activity == null) + { + result.HasError = true; + result.AddMessage(string.Format(ErrorMessages.ActivityDoesNotExist, activityId)); + return result; + } + + result.Data = _mapper.Map<ActivityDto>(activity); + return result; + } } } diff --git a/Tsi1.Api/Tsi1.BusinessLayer/Services/EvaluationService.cs b/Tsi1.Api/Tsi1.BusinessLayer/Services/EvaluationService.cs index 9d20685..a25f5c7 100644 --- a/Tsi1.Api/Tsi1.BusinessLayer/Services/EvaluationService.cs +++ b/Tsi1.Api/Tsi1.BusinessLayer/Services/EvaluationService.cs @@ -337,7 +337,7 @@ namespace Tsi1.BusinessLayer.Services return result; } - if (evaluation.IsCompleted) + if (evaluation.Activity.Date < DateTime.Now) { result.HasError = true; result.AddMessage(string.Format(ErrorMessages.EvaluationIsCompleted, evaluationId)); -- GitLab