diff --git a/Tsi1.Api/Tsi1.Api/Controllers/ActivityController.cs b/Tsi1.Api/Tsi1.Api/Controllers/ActivityController.cs index 4dd5d23e98f3fa4396be61df98a4da0d5d72579d..23a333a55ddaf01f5d4cc616530d328266a1605e 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 831e4f6324f9f16d28468192ee8f7b45c9970a48..f7da8d12060cbef61726dad857c08b45f9e6f45f 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 a8dfd19d3ab6d2ff3377d43fc7827d91e73eb1fd..754f9682ed525c562eea168e3a159f1518f8b616 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 67c239ff615099c447889b0e9ff8b1b6cb0e3328..cd22f212454a8958c33d658969856a723234c74f 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 9d20685d06a2bd51aef9f7dcc1826753ab0a56c0..a25f5c7990a94a8475bef7bb9255435fbfeda535 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));