public async Task <IActionResult> GetContainerRelationshipsAsync(string id) { var queryModel = new GetDocumentContainerRelationshipsQueryModel { Id = id }; GetDocumentContainerRelationshipsResultModel resultModel; try { resultModel = await _queryHandler.HandleAsync(queryModel); } catch (QueryModelException ex) { // When Query model validation fails. _logger.LogError(ex.Message, ex); throw; } catch (FailedApiRequestException ex) { // When Panviva API results in a error. _logger.LogError(ex.Message, ex); throw; } return(Ok(resultModel)); }
public async Task <ModifiedDocumentModel> GetAsync(string id) { var getDocumentQueryModel = new GetDocumentQueryModel { Id = id }; var getDocumentContainersQueryModel = new GetDocumentContainersQueryModel { Id = id }; var getDocumentTranslationsQueryModel = new GetDocumentTranslationsQueryModel { Id = id }; var getDocumentContainerRelationshipsQueryModel = new GetDocumentContainerRelationshipsQueryModel { Id = id }; var getContainersTask = _queryHandler.HandleAsync(getDocumentContainersQueryModel); var getContainerRelationships = _queryHandler.HandleAsync(getDocumentContainerRelationshipsQueryModel); var getTranslationsTask = _queryHandler.HandleAsync(getDocumentTranslationsQueryModel); GetDocumentResultModel mainDocument; try { // Execute calls to Panviva through SDK. mainDocument = await _queryHandler.HandleAsync(getDocumentQueryModel); Task.WaitAll(getTranslationsTask, getContainerRelationships, getContainersTask); } catch (QueryModelException ex) { // When Query model validation fails. _logger.LogError(ex.Message, ex); throw; } catch (FailedApiRequestException ex) { // When Panviva API results in a error. _logger.LogError(ex.Message, ex); throw; } var finalResult = Mapper.Map(mainDocument); finalResult.Containers = getContainersTask.Result.Containers; finalResult.Translations = getTranslationsTask.Result.Translations; finalResult.Origin = getTranslationsTask.Result.Origin; finalResult.Relationships = getContainerRelationships.Result.Relationships; return(finalResult); }