private async Task <SpecificationDatasetRelationshipsViewModel> PopulateViewModel(SpecificationSummary specification)
        {
            SpecificationSummaryViewModel vm = _mapper.Map <SpecificationSummaryViewModel>(specification);
            SpecificationDatasetRelationshipsViewModel viewModel = new SpecificationDatasetRelationshipsViewModel(vm);

            ApiResponse <IEnumerable <DatasetSpecificationRelationshipViewModel> > apiResponse = await _datasetsApiClient.GetRelationshipsBySpecificationId(specification.Id);

            if (apiResponse.StatusCode != HttpStatusCode.OK || apiResponse.Content == null)
            {
                return(null);
            }

            viewModel.Items = apiResponse.Content.Select(m => new SpecificationDatasetRelationshipItemViewModel
            {
                DatasetId               = m.DatasetId,
                DatasetName             = m.DatasetName,
                DefinitionName          = m.Definition != null ? m.Definition.Name : string.Empty,
                DefinitionId            = m.Definition != null ? m.Definition.Id : string.Empty,
                DefinitionDescription   = m.Definition?.Description ?? string.Empty,
                DatasetVersion          = m.Version ?? 0,
                RelationName            = m.Name,
                RelationshipId          = m.Id,
                RelationshipDescription = m.RelationshipDescription,
                IsProviderData          = m.IsProviderData,
                IsLatestVersion         = m.IsLatestVersion,
                LastUpdatedDate         = m.LastUpdatedDate,
                LastUpdatedAuthorName   = string.IsNullOrWhiteSpace(m.LastUpdatedAuthor?.Name) ? "Unknown" : m.LastUpdatedAuthor.Name,
            }).OrderBy(_ => _.RelationName);

            return(viewModel);
        }
Esempio n. 2
0
        private async Task <SpecificationDatasetRelationshipsViewModel> PopulateViewModel(SpecificationSummary specification)
        {
            SpecificationSummaryViewModel vm = _mapper.Map <SpecificationSummaryViewModel>(specification);
            SpecificationDatasetRelationshipsViewModel viewModel = new SpecificationDatasetRelationshipsViewModel(vm);

            ApiResponse <IEnumerable <DatasetSpecificationRelationshipModel> > apiResponse = await _datasetsApiClient.GetDatasetSpecificationRelationshipsBySpecificationId(specification.Id);

            if (apiResponse.StatusCode != HttpStatusCode.OK || apiResponse.Content == null)
            {
                _logger.Error($"Failed to fetch specification relationships for specification id: {specification.Id}");

                return(null);
            }

            viewModel.Items = apiResponse.Content.Select(m => new SpecificationDatasetRelationshipItemViewModel
            {
                DatasetId               = m.DatasetId,
                DatasetName             = m.DatasetName,
                DefinitionName          = m.Definition != null ? m.Definition.Name : string.Empty,
                DefinitionId            = m.Definition != null ? m.Definition.Id : string.Empty,
                DefinitionDescription   = m.Definition != null ? m.Definition.Description : string.Empty,
                DatasetVersion          = m.Version.HasValue ? m.Version.Value : 0,
                RelationName            = m.Name,
                RelationshipId          = m.Id,
                RelationshipDescription = m.RelationshipDescription,
                IsProviderData          = m.IsProviderData
            });

            return(viewModel);
        }
Esempio n. 3
0
        public async Task <IActionResult> OnGetAsync(string specificationId, bool wasSuccess = false)
        {
            Guard.IsNullOrWhiteSpace(specificationId, nameof(specificationId));

            ShowSuccessMessage = wasSuccess;

            ApiResponse <SpecificationSummary> specificationResponse = await _specsApiClient.GetSpecificationSummary(specificationId);

            if (specificationResponse.StatusCode != HttpStatusCode.OK)
            {
                _logger.Error($"Failed to fetch specification with status code {specificationResponse.StatusCode.ToString()}");
                return(new StatusCodeResult((int)specificationResponse.StatusCode));
            }

            IsAuthorizedToMap = await _authorizationHelper.DoesUserHavePermission(User, specificationResponse.Content,
                                                                                  SpecificationActionTypes.CanMapDatasets);

            SpecificationDatasetRelationshipsViewModel viewModel = await PopulateViewModel(specificationResponse.Content);

            if (viewModel == null)
            {
                _logger.Error($"A null view model was returned");
                return(new StatusCodeResult(500));
            }

            ViewModel = viewModel;

            return(Page());
        }
        public async Task <IActionResult> GetSources(string specificationId)
        {
            Guard.IsNullOrWhiteSpace(specificationId, nameof(specificationId));

            ApiResponse <SpecificationSummary> specificationResponse = await _specificationsApiClient.GetSpecificationSummaryById(specificationId);

            if (specificationResponse.StatusCode != HttpStatusCode.OK)
            {
                return(new StatusCodeResult((int)specificationResponse.StatusCode));
            }

            SpecificationDatasetRelationshipsViewModel viewModel = await PopulateViewModel(specificationResponse.Content);

            if (viewModel == null)
            {
                return(new StatusCodeResult(500));
            }

            return(new OkObjectResult(viewModel));
        }