diff --git a/Tsi1.Api/Tsi1.Api/SignalR/VideoHub.cs b/Tsi1.Api/Tsi1.Api/SignalR/VideoHub.cs index 4744e3c5304f6f3e848bc92fbd163c60d84a93e7..8f220558273e8805f09eaf7d52a89e551b2cfcdb 100644 --- a/Tsi1.Api/Tsi1.Api/SignalR/VideoHub.cs +++ b/Tsi1.Api/Tsi1.Api/SignalR/VideoHub.cs @@ -26,25 +26,17 @@ namespace Tsi1.Api.SignalR await Clients.Caller.SendAsync(Context.ConnectionId); } - [Authorize(Roles = UserTypes.Professor)] - public async Task CreateRoom(int activityId) + public async Task Join(int activityId, string offer) { - var result = await _activityService.ActivityValidation(activityId); + var userId = int.Parse(Context.User.Claims.FirstOrDefault(x => x.Type == "Id").Value); - if (result.HasError) + var validation = await _activityService.ActivityValidation(activityId, userId); + + if (validation.HasError) { - throw new HubException(result.Message); + throw new HubException(validation.Message); } - await Groups.AddToGroupAsync(Context.ConnectionId, activityId.ToString()); - - await Clients.Caller.SendAsync("CreateRoom", activityId); - } - - public async Task Join(int activityId, string offer) - { - var userId = int.Parse(Context.User.Claims.FirstOrDefault(x => x.Type == "Id").Value); - var result = await _activityService.AttendVirtualClass(activityId, userId); if (result.HasError) diff --git a/Tsi1.Api/Tsi1.BusinessLayer/Interfaces/IActivityService.cs b/Tsi1.Api/Tsi1.BusinessLayer/Interfaces/IActivityService.cs index 2dafbb77d7824411fd2d8955460e97a484e72a08..43e11ae55cebab960701cd73efb5e620cd7c74a7 100644 --- a/Tsi1.Api/Tsi1.BusinessLayer/Interfaces/IActivityService.cs +++ b/Tsi1.Api/Tsi1.BusinessLayer/Interfaces/IActivityService.cs @@ -15,7 +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); + Task<ServiceResult<int>> ActivityValidation(int activityId, int userId); Task<ServiceResult<GradeDto>> AddOrModifyGrade(GradeDto gradeDto, int userId); Task<ServiceResult<int>> DeleteGrade(int myUserId, int activityId, int userId); Task<ServiceResult<List<GradeDto>>> GetMyGrades(int activityId, int userId); diff --git a/Tsi1.Api/Tsi1.BusinessLayer/Services/ActivityService.cs b/Tsi1.Api/Tsi1.BusinessLayer/Services/ActivityService.cs index 706d49ff0cca68604f335dcf3d0ae25a519c5015..fca3edd8d1cf94a4530a2fcb09f5b0d0dbd80832 100644 --- a/Tsi1.Api/Tsi1.BusinessLayer/Services/ActivityService.cs +++ b/Tsi1.Api/Tsi1.BusinessLayer/Services/ActivityService.cs @@ -52,7 +52,7 @@ namespace Tsi1.BusinessLayer.Services return result; } - public async Task<ServiceResult<int>> ActivityValidation(int activityId) + public async Task<ServiceResult<int>> ActivityValidation(int activityId, int userId) { var result = new ServiceResult<int>(); @@ -62,6 +62,15 @@ namespace Tsi1.BusinessLayer.Services { result.HasError = true; result.AddMessage(string.Format(ErrorMessages.ActivityDoesNotExist, activityId)); + return result; + } + + var validation = await this.UserTypeValidation(activity.CourseId, userId); + + if (validation.HasError) + { + result.HasError = true; + result.AddMessage(validation.Message); } return result;