public async Task <Result <GetDetails.SchoolDetails, Error> > Handle(GetDetails.Query request, CancellationToken cancellationToken) { var id = SchoolId.With(request.SchoolId); var events = await _eventStore.LoadEventsAsync <SchoolAggregate, SchoolId>(id, cancellationToken); var school = await _aggregateStore.LoadAsync <SchoolAggregate, SchoolId>(id, cancellationToken); if (school.IsNew) { return(Result.Failure <GetDetails.SchoolDetails, Error>(new Error.ResourceNotFound())); } var details = await BuildDetails(school, events); return(Result.Success <GetDetails.SchoolDetails, Error>(details)); }
private async Task <IActionResult> BuildPage(Guid schoolId) { SchoolId = schoolId; var request = new GetDetails.Query() { SchoolId = schoolId }; var result = await _engine.Query(request); if (result.IsFailure) { return new PageResult() { StatusCode = (int)HttpStatusCode.NotFound } } ; SchoolDetails = result.Value; return(Page()); }