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>()
                });
            }
コード例 #2
0
            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);
            }