public async Task <StudentInformationDto> Handle(GetStudentInformationQuery request, CancellationToken cancellationToken) { var studentInfo = await _studentCurriculumGrpcService.GetInfoAsync(request.UserId); var curriculumInfo = await _curriculumGrpcService.GetOverviewAsync(studentInfo.CurrentSemesterId, request.UserId); return(new StudentInformationDto { Student = studentInfo.MapTo <StudentDto>(), CurriculumOverview = curriculumInfo.MapTo <CurriculumOverviewDto>() }); }
public async Task <Unit> Handle(AddCurriculumCommand request, CancellationToken cancellationToken) { _logger.LogInformation("Add curriculum to user {0}", request.UserId); var studentInformation = await _studentCurriculumGrpcService.GetInfoAsync(request.UserId); if (!studentInformation.CanTakeCurriculums) { throw new BadRequestException("Time of adding/removing curriculums is over."); } // Check validations and call other services await _publishEndpoint.Publish <ICurriculumAddedRequest>(new CurriculumAddedRequest { CurriculumId = request.CurriculumId, UserId = request.UserId, StudentId = studentInformation.Id }, cancellationToken); return(Unit.Value); }