public async Task <Result <GetEnrollmentDetails.Details, Error> > Handle(GetEnrollmentDetails.QueryByEnrollmentId request, CancellationToken cancellationToken) { var id = EnrollmentAggregate.EnrollmentId.With(request.EnrollmentID); var events = await _eventStore.LoadEventsAsync <EnrollmentAggregate, EnrollmentAggregate.EnrollmentId>(id, cancellationToken); var enrollment = await _aggregateStore.LoadAsync <EnrollmentAggregate, EnrollmentAggregate.EnrollmentId>(id, cancellationToken); if (enrollment.IsNew) { return(Result.Failure <GetEnrollmentDetails.Details, Error>(new Error.ResourceNotFound())); } var preferredTrainings = await _trainingRepository.GetByIds(enrollment.PreferredTrainingIds); var trainers = await _trainerProvider.GetTrainerDetails(preferredTrainings.Select(x => x.CoordinatorID).ToArray()); var latestCampaign = (await _campaignRepository.GetAll()) .OrderByDescending(x => x.StartDateTime, OffsetDateTime.Comparer.Instant) .FirstOrDefault(); var now = _clock.GetCurrentInstant(); var details = await BuildDetails(enrollment, events, preferredTrainings, trainers, now, latestCampaign); return(Result.Success <GetEnrollmentDetails.Details, Error>(details)); }
private async Task <IActionResult> BuildPage(Guid enrollmentId) { EnrollmentId = enrollmentId; var request = new GetEnrollmentDetails.QueryByEnrollmentId() { EnrollmentID = enrollmentId }; var result = await _engine.Query(request); if (result.IsFailure) { return new PageResult() { StatusCode = (int)System.Net.HttpStatusCode.NotFound } } ; EnrollmentDetails = result.Value; return(Page()); }