From 0c5421f544ddeb652a5e96030d4f8b703e5605fb Mon Sep 17 00:00:00 2001 From: bryanrcarlson Date: Wed, 23 Feb 2022 14:51:48 -0800 Subject: [PATCH 1/3] Moved to v0.2 of schema --- Caf.Midden.Cli/Actions/Collate.cs | 2 +- Caf.Midden.Cli/Common/ICrawl.cs | 2 +- .../Services/AzureDataLakeCrawler.cs | 2 +- .../Services/AzureFileShareCrawler.cs | 2 +- .../GoogleWorkspaceSharedDriveCrawler.cs | 2 +- .../Services/LocalFileSystemCrawler.cs | 2 +- .../MetadataConverterTest.cs | 28 +++---- Caf.Midden.Core.Tests/MetadataParserTest.cs | 2 +- Caf.Midden.Core/Models/v0_1/Catalog.cs | 3 - Caf.Midden.Core/Models/v0_2/Catalog.cs | 29 +++++++ Caf.Midden.Core/Models/v0_2/Configuration.cs | 48 +++++++++++ .../DataDictionaryRecordCafCsv.cs | 16 ++++ Caf.Midden.Core/Models/v0_2/Dataset.cs | 81 +++++++++++++++++++ Caf.Midden.Core/Models/v0_2/Geometry.cs | 18 +++++ Caf.Midden.Core/Models/v0_2/Metadata.cs | 30 +++++++ Caf.Midden.Core/Models/v0_2/Person.cs | 21 +++++ .../Models/{v0_1 => v0_2}/Project.cs | 2 +- Caf.Midden.Core/Models/v0_2/Variable.cs | 73 +++++++++++++++++ Caf.Midden.Core/Services/CatalogAnalyzer.cs | 2 +- Caf.Midden.Core/Services/CatalogReaderHttp.cs | 2 +- .../Configuration/ConfigurationReaderHttp.cs | 6 +- .../Configuration/IReadConfiguration.cs | 2 +- .../Services/DataDictionaryReaderCafCsv.cs | 4 +- Caf.Midden.Core/Services/IReadCatalog.cs | 2 +- .../Services/IReadDataDictionary.cs | 2 +- .../Services/Metadata/IMetadataConverter.cs | 9 ++- .../Services/Metadata/IMetadataParser.cs | 2 +- .../Services/Metadata/MetadataConverter.cs | 37 +++++---- .../Services/Metadata/MetadataParser.cs | 19 ++--- .../Services/Metadata/MetadataReader.cs | 4 +- Caf.Midden.Wasm/Caf.Midden.Wasm.csproj | 2 +- Caf.Midden.Wasm/Common/IUpdateAppConfig.cs | 2 +- Caf.Midden.Wasm/Common/IUpdateLastUpdated.cs | 2 +- Caf.Midden.Wasm/Pages/Insights.razor.cs | 2 +- Caf.Midden.Wasm/Pages/MetadataView.razor.cs | 2 +- Caf.Midden.Wasm/Services/StateContainer.cs | 2 +- Caf.Midden.Wasm/Shared/CatalogLoader.razor.cs | 2 +- .../Shared/CatalogVariableViewer.razor.cs | 2 +- .../Shared/ConfigurationLoader.razor.cs | 2 +- .../DataDictionaryLoaderCafCsv.razor.cs | 2 +- .../FilteredCatalogMetadataViewer.razor.cs | 2 +- .../FilteredCatalogProjectViewer.razor.cs | 2 +- Caf.Midden.Wasm/Shared/MainLayout.razor.cs | 2 +- Caf.Midden.Wasm/Shared/MetadataDetails.razor | 4 +- .../Shared/MetadataDetails.razor.cs | 2 +- Caf.Midden.Wasm/Shared/MetadataEditor.razor | 4 +- .../Shared/MetadataEditor.razor.cs | 2 +- .../Shared/MetadataLoaderFileSystem.razor.cs | 2 +- .../Shared/Modals/MetadataDetailsModal.razor | 2 +- .../Shared/Modals/PersonModal.razor | 2 +- .../Shared/Modals/VariableModal.razor | 2 +- .../Shared/ProjectDetails.razor.cs | 2 +- .../CatalogVariableViewerViewModel.cs | 2 +- .../ViewModels/MetadataDetailsViewModel.cs | 2 +- .../Shared/ViewModels/PersonModalViewModel.cs | 2 +- .../ViewModels/VariableModalViewModel.cs | 2 +- Caf.Midden.Wasm/_Imports.razor | 2 +- 57 files changed, 417 insertions(+), 95 deletions(-) create mode 100644 Caf.Midden.Core/Models/v0_2/Catalog.cs create mode 100644 Caf.Midden.Core/Models/v0_2/Configuration.cs create mode 100644 Caf.Midden.Core/Models/v0_2/DataDictionary/DataDictionaryRecordCafCsv.cs create mode 100644 Caf.Midden.Core/Models/v0_2/Dataset.cs create mode 100644 Caf.Midden.Core/Models/v0_2/Geometry.cs create mode 100644 Caf.Midden.Core/Models/v0_2/Metadata.cs create mode 100644 Caf.Midden.Core/Models/v0_2/Person.cs rename Caf.Midden.Core/Models/{v0_1 => v0_2}/Project.cs (92%) create mode 100644 Caf.Midden.Core/Models/v0_2/Variable.cs diff --git a/Caf.Midden.Cli/Actions/Collate.cs b/Caf.Midden.Cli/Actions/Collate.cs index 9b92a58..30c80f0 100644 --- a/Caf.Midden.Cli/Actions/Collate.cs +++ b/Caf.Midden.Cli/Actions/Collate.cs @@ -1,7 +1,7 @@ using Caf.Midden.Cli.Common; using Caf.Midden.Cli.Models; using Caf.Midden.Cli.Services; -using Caf.Midden.Core.Models.v0_1; +using Caf.Midden.Core.Models.v0_2; using System; using System.Collections.Generic; using System.CommandLine; diff --git a/Caf.Midden.Cli/Common/ICrawl.cs b/Caf.Midden.Cli/Common/ICrawl.cs index 1bf2a48..57001a7 100644 --- a/Caf.Midden.Cli/Common/ICrawl.cs +++ b/Caf.Midden.Cli/Common/ICrawl.cs @@ -1,4 +1,4 @@ -using Caf.Midden.Core.Models.v0_1; +using Caf.Midden.Core.Models.v0_2; using System; using System.Collections.Generic; using System.Linq; diff --git a/Caf.Midden.Cli/Services/AzureDataLakeCrawler.cs b/Caf.Midden.Cli/Services/AzureDataLakeCrawler.cs index 950eebd..7061d43 100644 --- a/Caf.Midden.Cli/Services/AzureDataLakeCrawler.cs +++ b/Caf.Midden.Cli/Services/AzureDataLakeCrawler.cs @@ -5,7 +5,7 @@ using Azure.Storage.Files.DataLake.Models; using Caf.Midden.Cli.Common; using Caf.Midden.Cli.Models; -using Caf.Midden.Core.Models.v0_1; +using Caf.Midden.Core.Models.v0_2; using Caf.Midden.Core.Services.Metadata; using System; using System.Collections.Generic; diff --git a/Caf.Midden.Cli/Services/AzureFileShareCrawler.cs b/Caf.Midden.Cli/Services/AzureFileShareCrawler.cs index 4ee0a74..80eb3e2 100644 --- a/Caf.Midden.Cli/Services/AzureFileShareCrawler.cs +++ b/Caf.Midden.Cli/Services/AzureFileShareCrawler.cs @@ -2,7 +2,7 @@ using Azure.Storage.Files.Shares; using Azure.Storage.Files.Shares.Models; using Caf.Midden.Cli.Common; -using Caf.Midden.Core.Models.v0_1; +using Caf.Midden.Core.Models.v0_2; using Caf.Midden.Core.Services.Metadata; using System; using System.Collections.Generic; diff --git a/Caf.Midden.Cli/Services/GoogleWorkspaceSharedDriveCrawler.cs b/Caf.Midden.Cli/Services/GoogleWorkspaceSharedDriveCrawler.cs index 33cb9ab..32d7beb 100644 --- a/Caf.Midden.Cli/Services/GoogleWorkspaceSharedDriveCrawler.cs +++ b/Caf.Midden.Cli/Services/GoogleWorkspaceSharedDriveCrawler.cs @@ -5,7 +5,7 @@ using Azure.Storage.Files.DataLake.Models; using Caf.Midden.Cli.Common; using Caf.Midden.Cli.Models; -using Caf.Midden.Core.Models.v0_1; +using Caf.Midden.Core.Models.v0_2; using Caf.Midden.Core.Services.Metadata; using Google.Apis.Auth.OAuth2; using Google.Apis.Drive.v3; diff --git a/Caf.Midden.Cli/Services/LocalFileSystemCrawler.cs b/Caf.Midden.Cli/Services/LocalFileSystemCrawler.cs index 5157887..ea31f06 100644 --- a/Caf.Midden.Cli/Services/LocalFileSystemCrawler.cs +++ b/Caf.Midden.Cli/Services/LocalFileSystemCrawler.cs @@ -1,5 +1,5 @@ using Caf.Midden.Cli.Common; -using Caf.Midden.Core.Models.v0_1; +using Caf.Midden.Core.Models.v0_2; using Caf.Midden.Core.Services.Metadata; using System; using System.Collections.Generic; diff --git a/Caf.Midden.Core.Tests/MetadataConverterTest.cs b/Caf.Midden.Core.Tests/MetadataConverterTest.cs index 65686d2..cbc2af8 100644 --- a/Caf.Midden.Core.Tests/MetadataConverterTest.cs +++ b/Caf.Midden.Core.Tests/MetadataConverterTest.cs @@ -21,7 +21,7 @@ public void Convert_v0_1_0alpha3Nulls_ConvertsProperly() var actual = sut.Convert(input); - Assert.IsType(actual); + Assert.IsType(actual); } public void Convert_v0_1_0alpha3WithVals_ConvertsProperly() @@ -89,7 +89,7 @@ public void Convert_v0_1_0alpha3WithVals_ConvertsProperly() var sut = new MetadataConverter(); - Models.v0_1.Metadata actual = sut.Convert(input); + Models.v0_2.Metadata actual = sut.Convert(input); Assert.Equal(creationDate, actual.CreationDate.ToString()); Assert.Equal(contactName, actual.Dataset.Contacts[0].Name); @@ -100,17 +100,17 @@ public void Convert_v0_1_0alpha3WithVals_ConvertsProperly() Assert.Equal(tempExtent, actual.Dataset.Variables[1].TemporalExtent); } - [Fact] - public void Convert_v0_1_0alpha4_ConvertsProperly() - { - Models.v0_1.Metadata input = - new Models.v0_1.Metadata(); - - var sut = new MetadataConverter(); - - var actual = sut.Convert(input); - - Assert.IsType(actual); - } +// [Fact] +// public void Convert_v0_1_0alpha4_ConvertsProperly() +// { +// Models.v0_1_0alpha4.Metadata input = +// new Models.v0_1_0alpha4.Metadata(); +// +// var sut = new MetadataConverter(); +// +// var actual = sut.Convert(input); +// +// Assert.IsType(actual); +// } } } diff --git a/Caf.Midden.Core.Tests/MetadataParserTest.cs b/Caf.Midden.Core.Tests/MetadataParserTest.cs index 4e5b044..66df038 100644 --- a/Caf.Midden.Core.Tests/MetadataParserTest.cs +++ b/Caf.Midden.Core.Tests/MetadataParserTest.cs @@ -21,7 +21,7 @@ private void Parse_v0_1_0alpha1String_ExpectedBehavior() var actual = sut.Parse(json); - Assert.IsType(actual); + Assert.IsType(actual); } } } diff --git a/Caf.Midden.Core/Models/v0_1/Catalog.cs b/Caf.Midden.Core/Models/v0_1/Catalog.cs index 7de748d..fac4ee9 100644 --- a/Caf.Midden.Core/Models/v0_1/Catalog.cs +++ b/Caf.Midden.Core/Models/v0_1/Catalog.cs @@ -15,9 +15,6 @@ public class Catalog [JsonPropertyName("creationDate")] public DateTime CreationDate { get; set; } - [JsonPropertyName("projects")] - public List Projects { get; set; } = new List(); - [JsonPropertyName("metadatas")] public List Metadatas { get; set; } = new List(); diff --git a/Caf.Midden.Core/Models/v0_2/Catalog.cs b/Caf.Midden.Core/Models/v0_2/Catalog.cs new file mode 100644 index 0000000..9318ff8 --- /dev/null +++ b/Caf.Midden.Core/Models/v0_2/Catalog.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.Json.Serialization; +using System.Threading.Tasks; + +namespace Caf.Midden.Core.Models.v0_2 +{ + public class Catalog + { + [JsonPropertyName("schemaVersion")] + public string SchemaVersion { get; private set; } + + [JsonPropertyName("creationDate")] + public DateTime CreationDate { get; set; } + + [JsonPropertyName("projects")] + public List Projects { get; set; } = new List(); + + [JsonPropertyName("metadatas")] + public List Metadatas { get; set; } = new List(); + + public Catalog() + { + this.SchemaVersion = "v0.2"; + } + } +} diff --git a/Caf.Midden.Core/Models/v0_2/Configuration.cs b/Caf.Midden.Core/Models/v0_2/Configuration.cs new file mode 100644 index 0000000..d381514 --- /dev/null +++ b/Caf.Midden.Core/Models/v0_2/Configuration.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.Json.Serialization; +using System.Threading.Tasks; + +namespace Caf.Midden.Core.Models.v0_2 +{ + public class Configuration + { + [JsonPropertyName("schemaVersion")] + public string SchemaVersion { get; set; } + + [JsonPropertyName("isConfigured")] + public bool IsConfigured { get; set; } = false; + + [JsonPropertyName("organizationName")] + public string OrganizationName { get; set; } + + [JsonPropertyName("toolName")] + public string ToolName { get; set; } + + [JsonPropertyName("catalogPath")] + public string CatalogPath { get; set; } + + [JsonPropertyName("zones")] + public List Zones { get; set; } = new List(); + + [JsonPropertyName("roles")] + public List Roles { get; set; } = new List(); + + [JsonPropertyName("processingLevels")] + public List ProcessingLevels { get; set; } = new List(); + + [JsonPropertyName("geometries")] + public List Geometries { get; set; } = new List(); + + [JsonPropertyName("tags")] + public List Tags { get; set; } = new List(); + + [JsonPropertyName("datasetStructures")] + public List DatasetStructures { get; set; } = new List(); + + [JsonPropertyName("qualityControlTags")] + public List QCTags { get; set; } = new List(); + } +} diff --git a/Caf.Midden.Core/Models/v0_2/DataDictionary/DataDictionaryRecordCafCsv.cs b/Caf.Midden.Core/Models/v0_2/DataDictionary/DataDictionaryRecordCafCsv.cs new file mode 100644 index 0000000..96a1f15 --- /dev/null +++ b/Caf.Midden.Core/Models/v0_2/DataDictionary/DataDictionaryRecordCafCsv.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Caf.Midden.Core.Models.v0_2.DataDictionary +{ + public class DataDictionaryRecordCafCsv + { + public string FieldName { get; set; } + public string Units { get; set; } + public string Description { get; set; } + public string DataType { get; set; } + } +} diff --git a/Caf.Midden.Core/Models/v0_2/Dataset.cs b/Caf.Midden.Core/Models/v0_2/Dataset.cs new file mode 100644 index 0000000..5fb230e --- /dev/null +++ b/Caf.Midden.Core/Models/v0_2/Dataset.cs @@ -0,0 +1,81 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Text.Json.Serialization; +using System.Threading.Tasks; + +namespace Caf.Midden.Core.Models.v0_2 +{ + public class Dataset + { + [JsonPropertyName("zone")] + [Required] + public string Zone { get; set; } + + [JsonPropertyName("project")] + [Required] + public string Project { get; set; } + + [JsonPropertyName("name")] + [Required] + public string Name { get; set; } + + [JsonPropertyName("description")] + [Required] + public string? Description { get; set; } + + [JsonPropertyName("datasetPath")] + public string? DatasetPath { get; set; } + + [JsonPropertyName("format")] + public string? Format { get; set; } + + [JsonPropertyName("filePathTemplate")] + public string? FilePathTemplate { get; set; } + + [JsonPropertyName("filePathDescriptor")] + public string? FilePathDescriptor { get; set; } + + [JsonPropertyName("structure")] + public string? Structure { get; set; } + + [JsonPropertyName("lastUpdate")] + public DateTime? LastUpdate { get; set; } + + [JsonPropertyName("tags")] + public List Tags { get; set; } = new List(); + + [JsonPropertyName("contacts")] + public List Contacts { get; set; } = new List(); + + /// + /// "geometry" value of a geojson document; should include "type" and "coordinates" + /// + [JsonPropertyName("geometry")] + public string? Geometry { get; set; } + + [JsonPropertyName("methods")] + public List Methods { get; set; } = new List(); + + [JsonPropertyName("temporalResolution")] + public string? TemporalResolution { get; set; } + + /// + /// String in form of {startDate}/{endDate}, e.g. 2011-01-01/2019-10-30 + /// Note that dates/times are in ISO 8601 standard + /// + [JsonPropertyName("temporalExtent")] + public string? TemporalExtent { get; set; } + + [JsonPropertyName("spatialRepeats")] + public int? SpatialRepeats { get; set; } + + [JsonPropertyName("variables")] + public List Variables { get; set; } = new List(); + + [JsonPropertyName("derivedWorks")] + public List? DerivedWorks { get; set; } = new List(); + } +} diff --git a/Caf.Midden.Core/Models/v0_2/Geometry.cs b/Caf.Midden.Core/Models/v0_2/Geometry.cs new file mode 100644 index 0000000..e0da567 --- /dev/null +++ b/Caf.Midden.Core/Models/v0_2/Geometry.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.Json.Serialization; +using System.Threading.Tasks; + +namespace Caf.Midden.Core.Models.v0_2 +{ + public class Geometry + { + [JsonPropertyName("name")] + public string Name { get; set; } + + [JsonPropertyName("geojson")] + public string GeoJson { get; set; } + } +} diff --git a/Caf.Midden.Core/Models/v0_2/Metadata.cs b/Caf.Midden.Core/Models/v0_2/Metadata.cs new file mode 100644 index 0000000..e1e652c --- /dev/null +++ b/Caf.Midden.Core/Models/v0_2/Metadata.cs @@ -0,0 +1,30 @@ +using System; +using System.ComponentModel.DataAnnotations; +using System.Text.Json.Serialization; + +namespace Caf.Midden.Core.Models.v0_2 +{ + public class Metadata + { + [JsonPropertyName("schemaVersion")] + [Required] + public string SchemaVersion { get; private set; } + + [JsonPropertyName("creationDate")] + [Required] + public DateTime CreationDate { get; set; } + + [JsonPropertyName("modifiedDate")] + [Required] + public DateTime ModifiedDate { get; set; } + + [JsonPropertyName("dataset")] + [Required] + public Dataset Dataset { get; set; } = new Dataset(); + + public Metadata() + { + this.SchemaVersion = "v0.2"; + } + } +} diff --git a/Caf.Midden.Core/Models/v0_2/Person.cs b/Caf.Midden.Core/Models/v0_2/Person.cs new file mode 100644 index 0000000..3f8c636 --- /dev/null +++ b/Caf.Midden.Core/Models/v0_2/Person.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.Json.Serialization; +using System.Threading.Tasks; + +namespace Caf.Midden.Core.Models.v0_2 +{ + public class Person + { + [JsonPropertyName("name")] + public string? Name { get; set; } + + [JsonPropertyName("email")] + public string? Email { get; set; } + + [JsonPropertyName("role")] + public string? Role { get; set; } + } +} diff --git a/Caf.Midden.Core/Models/v0_1/Project.cs b/Caf.Midden.Core/Models/v0_2/Project.cs similarity index 92% rename from Caf.Midden.Core/Models/v0_1/Project.cs rename to Caf.Midden.Core/Models/v0_2/Project.cs index 87c4d3f..d775053 100644 --- a/Caf.Midden.Core/Models/v0_1/Project.cs +++ b/Caf.Midden.Core/Models/v0_2/Project.cs @@ -6,7 +6,7 @@ using System.Text.Json.Serialization; using System.Threading.Tasks; -namespace Caf.Midden.Core.Models.v0_1 +namespace Caf.Midden.Core.Models.v0_2 { public class Project { diff --git a/Caf.Midden.Core/Models/v0_2/Variable.cs b/Caf.Midden.Core/Models/v0_2/Variable.cs new file mode 100644 index 0000000..7171b9b --- /dev/null +++ b/Caf.Midden.Core/Models/v0_2/Variable.cs @@ -0,0 +1,73 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Text.Json.Serialization; +using System.Threading.Tasks; + +namespace Caf.Midden.Core.Models.v0_2 +{ + public class Variable + { + [JsonPropertyName("name")] + [Required] + public string? Name { get; set; } + + [JsonPropertyName("description")] + [Required] + public string? Description { get; set; } + + [JsonPropertyName("units")] + [Required] + public string? Units { get; set; } + + [JsonPropertyName("height")] + public double? Height { get; set; } + + [JsonPropertyName("tags")] + public List? Tags { get; set; } = new List(); + + [JsonPropertyName("methods")] + public List? Methods { get; set; } = new List(); + + [JsonPropertyName("temporalResolution")] + public string? TemporalResolution { get; set; } + + [JsonPropertyName("temporalExtent")] + public string? TemporalExtent { get; set; } + + [JsonPropertyName("spatialRepeats")] + public int? SpatialRepeats { get; set; } + + [JsonPropertyName("isQCSpecified")] + public bool? IsQCSpecified { get; set; } + + [JsonPropertyName("qcApplied")] + public List? QCApplied { get; set; } = new List(); + + [JsonPropertyName("processingLevel")] + public string? ProcessingLevel { get; set; } + + public Variable ShallowCopy() + { + return (Variable)this.MemberwiseClone(); + } + + public Variable DeepCopy() + { + Variable other = (Variable)this.MemberwiseClone(); + + if(this.Tags != null) + other.Tags = new List(this.Tags); + + if (this.Methods != null) + other.Methods = new List(this.Methods); + + if (this.QCApplied != null) + other.QCApplied = new List(this.QCApplied); + + return other; + } + } +} diff --git a/Caf.Midden.Core/Services/CatalogAnalyzer.cs b/Caf.Midden.Core/Services/CatalogAnalyzer.cs index 038b09b..329b61f 100644 --- a/Caf.Midden.Core/Services/CatalogAnalyzer.cs +++ b/Caf.Midden.Core/Services/CatalogAnalyzer.cs @@ -1,4 +1,4 @@ -using Caf.Midden.Core.Models.v0_1_0alpha4; +using Caf.Midden.Core.Models.v0_2; using System; using System.Collections.Generic; using System.Linq; diff --git a/Caf.Midden.Core/Services/CatalogReaderHttp.cs b/Caf.Midden.Core/Services/CatalogReaderHttp.cs index ba0d0ba..41670b6 100644 --- a/Caf.Midden.Core/Services/CatalogReaderHttp.cs +++ b/Caf.Midden.Core/Services/CatalogReaderHttp.cs @@ -1,4 +1,4 @@ -using Caf.Midden.Core.Models.v0_1; +using Caf.Midden.Core.Models.v0_2; using System; using System.Collections.Generic; using System.Linq; diff --git a/Caf.Midden.Core/Services/Configuration/ConfigurationReaderHttp.cs b/Caf.Midden.Core/Services/Configuration/ConfigurationReaderHttp.cs index e7e252e..388ee9b 100644 --- a/Caf.Midden.Core/Services/Configuration/ConfigurationReaderHttp.cs +++ b/Caf.Midden.Core/Services/Configuration/ConfigurationReaderHttp.cs @@ -22,11 +22,11 @@ public ConfigurationReaderHttp( this.jsonPath = jsonPath; } - public async Task Read() + public async Task Read() { - Models.v0_1.Configuration result = + Models.v0_2.Configuration result = await client - .GetFromJsonAsync( + .GetFromJsonAsync( jsonPath); return result; diff --git a/Caf.Midden.Core/Services/Configuration/IReadConfiguration.cs b/Caf.Midden.Core/Services/Configuration/IReadConfiguration.cs index 6991f18..b0898e5 100644 --- a/Caf.Midden.Core/Services/Configuration/IReadConfiguration.cs +++ b/Caf.Midden.Core/Services/Configuration/IReadConfiguration.cs @@ -8,6 +8,6 @@ namespace Caf.Midden.Core.Services.Configuration { public interface IReadConfiguration { - Task Read(); + Task Read(); } } diff --git a/Caf.Midden.Core/Services/DataDictionaryReaderCafCsv.cs b/Caf.Midden.Core/Services/DataDictionaryReaderCafCsv.cs index 888f935..7c908fd 100644 --- a/Caf.Midden.Core/Services/DataDictionaryReaderCafCsv.cs +++ b/Caf.Midden.Core/Services/DataDictionaryReaderCafCsv.cs @@ -1,5 +1,5 @@ -using Caf.Midden.Core.Models.v0_1; -using Caf.Midden.Core.Models.v0_1.DataDictionary; +using Caf.Midden.Core.Models.v0_2; +using Caf.Midden.Core.Models.v0_2.DataDictionary; using CsvHelper; using CsvHelper.Configuration; using System; diff --git a/Caf.Midden.Core/Services/IReadCatalog.cs b/Caf.Midden.Core/Services/IReadCatalog.cs index fcc9156..e5166b9 100644 --- a/Caf.Midden.Core/Services/IReadCatalog.cs +++ b/Caf.Midden.Core/Services/IReadCatalog.cs @@ -1,4 +1,4 @@ -using Caf.Midden.Core.Models.v0_1; +using Caf.Midden.Core.Models.v0_2; using System; using System.Collections.Generic; using System.Linq; diff --git a/Caf.Midden.Core/Services/IReadDataDictionary.cs b/Caf.Midden.Core/Services/IReadDataDictionary.cs index 2c05b70..80b2834 100644 --- a/Caf.Midden.Core/Services/IReadDataDictionary.cs +++ b/Caf.Midden.Core/Services/IReadDataDictionary.cs @@ -1,4 +1,4 @@ -using Caf.Midden.Core.Models.v0_1; +using Caf.Midden.Core.Models.v0_2; using System; using System.Collections.Generic; using System.IO; diff --git a/Caf.Midden.Core/Services/Metadata/IMetadataConverter.cs b/Caf.Midden.Core/Services/Metadata/IMetadataConverter.cs index 7c789de..c991204 100644 --- a/Caf.Midden.Core/Services/Metadata/IMetadataConverter.cs +++ b/Caf.Midden.Core/Services/Metadata/IMetadataConverter.cs @@ -8,12 +8,13 @@ namespace Caf.Midden.Core.Services.Metadata { public interface IMetadataConverter { - Models.v0_1.Metadata Convert( + Models.v0_2.Metadata Convert( Models.v0_1_0alpha3.Metadata metadata); - Models.v0_1.Metadata Convert( + Models.v0_2.Metadata Convert( Models.v0_1_0alpha4.Metadata metadata); - - Models.v0_1.Metadata Convert( + Models.v0_2.Metadata Convert( Models.v0_1.Metadata metadata); + Models.v0_2.Metadata Convert( + Models.v0_2.Metadata metadata); } } diff --git a/Caf.Midden.Core/Services/Metadata/IMetadataParser.cs b/Caf.Midden.Core/Services/Metadata/IMetadataParser.cs index b90da50..4dd9fd2 100644 --- a/Caf.Midden.Core/Services/Metadata/IMetadataParser.cs +++ b/Caf.Midden.Core/Services/Metadata/IMetadataParser.cs @@ -8,6 +8,6 @@ namespace Caf.Midden.Core.Services.Metadata { public interface IMetadataParser { - Models.v0_1.Metadata Parse(string json); + Models.v0_2.Metadata Parse(string json); } } diff --git a/Caf.Midden.Core/Services/Metadata/MetadataConverter.cs b/Caf.Midden.Core/Services/Metadata/MetadataConverter.cs index d73dfd8..a92dfec 100644 --- a/Caf.Midden.Core/Services/Metadata/MetadataConverter.cs +++ b/Caf.Midden.Core/Services/Metadata/MetadataConverter.cs @@ -5,21 +5,21 @@ namespace Caf.Midden.Core.Services.Metadata { public class MetadataConverter : IMetadataConverter { - public Models.v0_1.Metadata Convert( + public Models.v0_2.Metadata Convert( Models.v0_1_0alpha3.Metadata metadata) { - Models.v0_1.Metadata result = - new Models.v0_1.Metadata + Models.v0_2.Metadata result = + new Models.v0_2.Metadata { CreationDate = DateTime.Parse( metadata.File.CreationDate), ModifiedDate = DateTime.UtcNow }; - Models.v0_1.Dataset d; + Models.v0_2.Dataset d; if(metadata.Dataset != null) { - d = new Models.v0_1.Dataset() + d = new Models.v0_2.Dataset() { Zone = metadata.Dataset.Zone.ToString(), Project = metadata.Dataset.Project, @@ -40,7 +40,7 @@ public Models.v0_1.Metadata Convert( Variables = ConvertVariables(metadata.Dataset.Variables) }; } - else { d = new Models.v0_1.Dataset(); } + else { d = new Models.v0_2.Dataset(); } result.Dataset = d; @@ -50,28 +50,35 @@ public Models.v0_1.Metadata Convert( } - public Models.v0_1.Metadata Convert( + public Models.v0_2.Metadata Convert( Models.v0_1_0alpha4.Metadata metadata) { // I'm hoping this never occurs, any v0_1_0-alpha4 schemas should be treated as v0_1 throw new NotImplementedException(); } - public Models.v0_1.Metadata Convert( + public Models.v0_2.Metadata Convert( Models.v0_1.Metadata metadata) + { + // I think this shouldn't occur since any v0_1 should be treated as v0_2 + throw new NotImplementedException(); + } + + public Models.v0_2.Metadata Convert( + Models.v0_2.Metadata metadata) { return metadata; } - private List ConvertContacts( + private List ConvertContacts( List contacts) { - List result = - new List(); + List result = + new List(); foreach(var person in contacts) { - result.Add(new Models.v0_1.Person() + result.Add(new Models.v0_2.Person() { Name = person.Name, Email = person.Email, @@ -82,14 +89,14 @@ public Models.v0_1.Metadata Convert( return result; } - private List ConvertVariables( + private List ConvertVariables( List variables) { - var result = new List(); + var result = new List(); foreach(var variable in variables) { - var newVariable = new Models.v0_1.Variable() + var newVariable = new Models.v0_2.Variable() { Name = variable.Name, Description = variable.Description, diff --git a/Caf.Midden.Core/Services/Metadata/MetadataParser.cs b/Caf.Midden.Core/Services/Metadata/MetadataParser.cs index c6c0cdc..3be2a69 100644 --- a/Caf.Midden.Core/Services/Metadata/MetadataParser.cs +++ b/Caf.Midden.Core/Services/Metadata/MetadataParser.cs @@ -13,23 +13,24 @@ public MetadataParser(IMetadataConverter converter) this.converter = converter; } - public Models.v0_1.Metadata Parse( + public Models.v0_2.Metadata Parse( string json) { string version = GetVersion(json); - Models.v0_1.Metadata result = version switch + Models.v0_2.Metadata result = version switch { "v0.1.0-alpha1" or "v0.1.0-alpha2" or "v0.1.0-alpha3" => Deserialize_v0_1_0alpha3(json), "v0.1.0-alpha4" or - "v0.1" => Deserialize_v0_1(json), + "v0.1" or + "v0.2" => Deserialize_v0_2(json), _ => throw new ArgumentException("Unable to parse JSON"), }; return result; } - private Models.v0_1.Metadata Deserialize_v0_1_0alpha3( + private Models.v0_2.Metadata Deserialize_v0_1_0alpha3( string json) { JsonSerializerOptions options = new JsonSerializerOptions() @@ -45,12 +46,12 @@ private Models.v0_1.Metadata Deserialize_v0_1_0alpha3( Models.v0_1_0alpha3.Metadata m = JsonSerializer.Deserialize( json, options); - Models.v0_1.Metadata result = + Models.v0_2.Metadata result = converter.Convert(m); return result; } - private Models.v0_1.Metadata Deserialize_v0_1( + private Models.v0_2.Metadata Deserialize_v0_2( string json) { JsonSerializerOptions options = new JsonSerializerOptions() @@ -63,10 +64,10 @@ private Models.v0_1.Metadata Deserialize_v0_1( .UnsafeRelaxedJsonEscaping }; - Models.v0_1.Metadata m = - JsonSerializer.Deserialize( + Models.v0_2.Metadata m = + JsonSerializer.Deserialize( json, options); - Models.v0_1.Metadata result = + Models.v0_2.Metadata result = converter.Convert(m); return result; diff --git a/Caf.Midden.Core/Services/Metadata/MetadataReader.cs b/Caf.Midden.Core/Services/Metadata/MetadataReader.cs index 8dd94c3..491f261 100644 --- a/Caf.Midden.Core/Services/Metadata/MetadataReader.cs +++ b/Caf.Midden.Core/Services/Metadata/MetadataReader.cs @@ -17,7 +17,7 @@ public MetadataReader( this.parser = parser; } - public Models.v0_1.Metadata Read( + public Models.v0_2.Metadata Read( string fileString) { if (fileString.Length == 0) @@ -28,7 +28,7 @@ public Models.v0_1.Metadata Read( return result; } - public async Task ReadAsync( + public async Task ReadAsync( System.IO.Stream stream) { using (var reader = new StreamReader(stream, Encoding.UTF8)) diff --git a/Caf.Midden.Wasm/Caf.Midden.Wasm.csproj b/Caf.Midden.Wasm/Caf.Midden.Wasm.csproj index 6216b56..add7ef6 100644 --- a/Caf.Midden.Wasm/Caf.Midden.Wasm.csproj +++ b/Caf.Midden.Wasm/Caf.Midden.Wasm.csproj @@ -3,7 +3,7 @@ net6.0 service-worker-assets.js - 0.1.5 + 0.2 diff --git a/Caf.Midden.Wasm/Common/IUpdateAppConfig.cs b/Caf.Midden.Wasm/Common/IUpdateAppConfig.cs index 61eda2d..aa97778 100644 --- a/Caf.Midden.Wasm/Common/IUpdateAppConfig.cs +++ b/Caf.Midden.Wasm/Common/IUpdateAppConfig.cs @@ -1,4 +1,4 @@ -using Caf.Midden.Core.Models.v0_1; +using Caf.Midden.Core.Models.v0_2; using Microsoft.AspNetCore.Components; using System; using System.Collections.Generic; diff --git a/Caf.Midden.Wasm/Common/IUpdateLastUpdated.cs b/Caf.Midden.Wasm/Common/IUpdateLastUpdated.cs index f36b91b..6de161b 100644 --- a/Caf.Midden.Wasm/Common/IUpdateLastUpdated.cs +++ b/Caf.Midden.Wasm/Common/IUpdateLastUpdated.cs @@ -1,4 +1,4 @@ -using Caf.Midden.Core.Models.v0_1; +using Caf.Midden.Core.Models.v0_2; using Microsoft.AspNetCore.Components; using System; using System.Collections.Generic; diff --git a/Caf.Midden.Wasm/Pages/Insights.razor.cs b/Caf.Midden.Wasm/Pages/Insights.razor.cs index 2d833ae..c8fe6a9 100644 --- a/Caf.Midden.Wasm/Pages/Insights.razor.cs +++ b/Caf.Midden.Wasm/Pages/Insights.razor.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Threading.Tasks; using AntDesign.Charts; -using Caf.Midden.Core.Models.v0_1; +using Caf.Midden.Core.Models.v0_2; using System.Globalization; namespace Caf.Midden.Wasm.Pages diff --git a/Caf.Midden.Wasm/Pages/MetadataView.razor.cs b/Caf.Midden.Wasm/Pages/MetadataView.razor.cs index b39e71e..c1c2c6c 100644 --- a/Caf.Midden.Wasm/Pages/MetadataView.razor.cs +++ b/Caf.Midden.Wasm/Pages/MetadataView.razor.cs @@ -1,4 +1,4 @@ -using Caf.Midden.Core.Models.v0_1; +using Caf.Midden.Core.Models.v0_2; using Microsoft.AspNetCore.Components; using System; using System.Collections.Generic; diff --git a/Caf.Midden.Wasm/Services/StateContainer.cs b/Caf.Midden.Wasm/Services/StateContainer.cs index ef60478..9455fe8 100644 --- a/Caf.Midden.Wasm/Services/StateContainer.cs +++ b/Caf.Midden.Wasm/Services/StateContainer.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Reflection; using System.Threading.Tasks; -using Caf.Midden.Core.Models.v0_1; +using Caf.Midden.Core.Models.v0_2; using Microsoft.AspNetCore.Components; namespace Caf.Midden.Wasm.Services diff --git a/Caf.Midden.Wasm/Shared/CatalogLoader.razor.cs b/Caf.Midden.Wasm/Shared/CatalogLoader.razor.cs index 2a408fa..1286404 100644 --- a/Caf.Midden.Wasm/Shared/CatalogLoader.razor.cs +++ b/Caf.Midden.Wasm/Shared/CatalogLoader.razor.cs @@ -1,4 +1,4 @@ -using Caf.Midden.Core.Models.v0_1; +using Caf.Midden.Core.Models.v0_2; using Microsoft.AspNetCore.Components; using System; using System.Collections.Generic; diff --git a/Caf.Midden.Wasm/Shared/CatalogVariableViewer.razor.cs b/Caf.Midden.Wasm/Shared/CatalogVariableViewer.razor.cs index 4f69c27..9aeb76f 100644 --- a/Caf.Midden.Wasm/Shared/CatalogVariableViewer.razor.cs +++ b/Caf.Midden.Wasm/Shared/CatalogVariableViewer.razor.cs @@ -1,5 +1,5 @@ using AntDesign; -using Caf.Midden.Core.Models.v0_1; +using Caf.Midden.Core.Models.v0_2; using Caf.Midden.Wasm.Shared.Modals; using Caf.Midden.Wasm.Shared.ViewModels; using Microsoft.AspNetCore.Components; diff --git a/Caf.Midden.Wasm/Shared/ConfigurationLoader.razor.cs b/Caf.Midden.Wasm/Shared/ConfigurationLoader.razor.cs index 722e849..0c9714f 100644 --- a/Caf.Midden.Wasm/Shared/ConfigurationLoader.razor.cs +++ b/Caf.Midden.Wasm/Shared/ConfigurationLoader.razor.cs @@ -1,4 +1,4 @@ -using Caf.Midden.Core.Models.v0_1; +using Caf.Midden.Core.Models.v0_2; using Microsoft.AspNetCore.Components; using System; using System.Collections.Generic; diff --git a/Caf.Midden.Wasm/Shared/DataDictionaryLoaderCafCsv.razor.cs b/Caf.Midden.Wasm/Shared/DataDictionaryLoaderCafCsv.razor.cs index b8da993..cfaf779 100644 --- a/Caf.Midden.Wasm/Shared/DataDictionaryLoaderCafCsv.razor.cs +++ b/Caf.Midden.Wasm/Shared/DataDictionaryLoaderCafCsv.razor.cs @@ -6,7 +6,7 @@ using System.Text; using System.Threading.Tasks; using Caf.Midden.Core.Services.Metadata; -using Caf.Midden.Core.Models.v0_1; +using Caf.Midden.Core.Models.v0_2; using Microsoft.AspNetCore.Components; using AntDesign; using Caf.Midden.Core.Services; diff --git a/Caf.Midden.Wasm/Shared/FilteredCatalogMetadataViewer.razor.cs b/Caf.Midden.Wasm/Shared/FilteredCatalogMetadataViewer.razor.cs index 9f85856..b3a0d0a 100644 --- a/Caf.Midden.Wasm/Shared/FilteredCatalogMetadataViewer.razor.cs +++ b/Caf.Midden.Wasm/Shared/FilteredCatalogMetadataViewer.razor.cs @@ -1,5 +1,5 @@ using AntDesign; -using Caf.Midden.Core.Models.v0_1; +using Caf.Midden.Core.Models.v0_2; using Caf.Midden.Wasm.Shared.Modals; using Microsoft.AspNetCore.Components; using System; diff --git a/Caf.Midden.Wasm/Shared/FilteredCatalogProjectViewer.razor.cs b/Caf.Midden.Wasm/Shared/FilteredCatalogProjectViewer.razor.cs index 3b7cc78..8c14f47 100644 --- a/Caf.Midden.Wasm/Shared/FilteredCatalogProjectViewer.razor.cs +++ b/Caf.Midden.Wasm/Shared/FilteredCatalogProjectViewer.razor.cs @@ -1,5 +1,5 @@ using AntDesign; -using Caf.Midden.Core.Models.v0_1; +using Caf.Midden.Core.Models.v0_2; using Caf.Midden.Wasm.Shared.Modals; using Microsoft.AspNetCore.Components; using System; diff --git a/Caf.Midden.Wasm/Shared/MainLayout.razor.cs b/Caf.Midden.Wasm/Shared/MainLayout.razor.cs index 2840f28..39b3071 100644 --- a/Caf.Midden.Wasm/Shared/MainLayout.razor.cs +++ b/Caf.Midden.Wasm/Shared/MainLayout.razor.cs @@ -1,4 +1,4 @@ -using Caf.Midden.Core.Models.v0_1; +using Caf.Midden.Core.Models.v0_2; using Microsoft.AspNetCore.Components; using System; using System.Collections.Generic; diff --git a/Caf.Midden.Wasm/Shared/MetadataDetails.razor b/Caf.Midden.Wasm/Shared/MetadataDetails.razor index 1a6cffc..bbe6230 100644 --- a/Caf.Midden.Wasm/Shared/MetadataDetails.razor +++ b/Caf.Midden.Wasm/Shared/MetadataDetails.razor @@ -79,7 +79,7 @@ @if (Metadata.Dataset.Variables?.Count > 0) { - Contacts - diff --git a/Caf.Midden.Wasm/Shared/MetadataDetails.razor.cs b/Caf.Midden.Wasm/Shared/MetadataDetails.razor.cs index 916de9c..8285395 100644 --- a/Caf.Midden.Wasm/Shared/MetadataDetails.razor.cs +++ b/Caf.Midden.Wasm/Shared/MetadataDetails.razor.cs @@ -1,4 +1,4 @@ -using Caf.Midden.Core.Models.v0_1; +using Caf.Midden.Core.Models.v0_2; using Microsoft.AspNetCore.Components; using System; using System.Collections.Generic; diff --git a/Caf.Midden.Wasm/Shared/MetadataEditor.razor b/Caf.Midden.Wasm/Shared/MetadataEditor.razor index 35aa40e..481412d 100644 --- a/Caf.Midden.Wasm/Shared/MetadataEditor.razor +++ b/Caf.Midden.Wasm/Shared/MetadataEditor.razor @@ -54,7 +54,7 @@
@if (context.Dataset.Contacts.Count > 0) { - @@ -147,7 +147,7 @@
@if (context.Dataset.Variables.Count > 0) { - diff --git a/Caf.Midden.Wasm/Shared/Modals/PersonModal.razor b/Caf.Midden.Wasm/Shared/Modals/PersonModal.razor index 6a12b3a..8d31901 100644 --- a/Caf.Midden.Wasm/Shared/Modals/PersonModal.razor +++ b/Caf.Midden.Wasm/Shared/Modals/PersonModal.razor @@ -1,4 +1,4 @@ -@using Caf.Midden.Core.Models.v0_1 +@using Caf.Midden.Core.Models.v0_2 @using Microsoft.AspNetCore.Components @using AntDesign @inherits FeedbackComponent diff --git a/Caf.Midden.Wasm/Shared/Modals/VariableModal.razor b/Caf.Midden.Wasm/Shared/Modals/VariableModal.razor index 643f907..16dc2dd 100644 --- a/Caf.Midden.Wasm/Shared/Modals/VariableModal.razor +++ b/Caf.Midden.Wasm/Shared/Modals/VariableModal.razor @@ -1,4 +1,4 @@ -@using Caf.Midden.Core.Models.v0_1 +@using Caf.Midden.Core.Models.v0_2 @using Microsoft.AspNetCore.Components @using AntDesign @inherits FeedbackComponent diff --git a/Caf.Midden.Wasm/Shared/ProjectDetails.razor.cs b/Caf.Midden.Wasm/Shared/ProjectDetails.razor.cs index 36a1e4b..f42ef1f 100644 --- a/Caf.Midden.Wasm/Shared/ProjectDetails.razor.cs +++ b/Caf.Midden.Wasm/Shared/ProjectDetails.razor.cs @@ -1,5 +1,5 @@ using AntDesign; -using Caf.Midden.Core.Models.v0_1; +using Caf.Midden.Core.Models.v0_2; using Caf.Midden.Wasm.Shared.Modals; using Markdig; using Microsoft.AspNetCore.Components; diff --git a/Caf.Midden.Wasm/Shared/ViewModels/CatalogVariableViewerViewModel.cs b/Caf.Midden.Wasm/Shared/ViewModels/CatalogVariableViewerViewModel.cs index eb243b7..905ae5a 100644 --- a/Caf.Midden.Wasm/Shared/ViewModels/CatalogVariableViewerViewModel.cs +++ b/Caf.Midden.Wasm/Shared/ViewModels/CatalogVariableViewerViewModel.cs @@ -1,4 +1,4 @@ -using Caf.Midden.Core.Models.v0_1; +using Caf.Midden.Core.Models.v0_2; using System; using System.Collections.Generic; using System.Linq; diff --git a/Caf.Midden.Wasm/Shared/ViewModels/MetadataDetailsViewModel.cs b/Caf.Midden.Wasm/Shared/ViewModels/MetadataDetailsViewModel.cs index aadf0da..7ea4072 100644 --- a/Caf.Midden.Wasm/Shared/ViewModels/MetadataDetailsViewModel.cs +++ b/Caf.Midden.Wasm/Shared/ViewModels/MetadataDetailsViewModel.cs @@ -1,4 +1,4 @@ -using Caf.Midden.Core.Models.v0_1; +using Caf.Midden.Core.Models.v0_2; using System; using System.Collections.Generic; using System.Linq; diff --git a/Caf.Midden.Wasm/Shared/ViewModels/PersonModalViewModel.cs b/Caf.Midden.Wasm/Shared/ViewModels/PersonModalViewModel.cs index 8b4f676..1165739 100644 --- a/Caf.Midden.Wasm/Shared/ViewModels/PersonModalViewModel.cs +++ b/Caf.Midden.Wasm/Shared/ViewModels/PersonModalViewModel.cs @@ -1,4 +1,4 @@ -using Caf.Midden.Core.Models.v0_1; +using Caf.Midden.Core.Models.v0_2; using System; using System.Collections.Generic; using System.Linq; diff --git a/Caf.Midden.Wasm/Shared/ViewModels/VariableModalViewModel.cs b/Caf.Midden.Wasm/Shared/ViewModels/VariableModalViewModel.cs index b28f561..5145f19 100644 --- a/Caf.Midden.Wasm/Shared/ViewModels/VariableModalViewModel.cs +++ b/Caf.Midden.Wasm/Shared/ViewModels/VariableModalViewModel.cs @@ -1,4 +1,4 @@ -using Caf.Midden.Core.Models.v0_1; +using Caf.Midden.Core.Models.v0_2; using System; using System.Collections.Generic; using System.Linq; diff --git a/Caf.Midden.Wasm/_Imports.razor b/Caf.Midden.Wasm/_Imports.razor index c4bc706..9163b0b 100644 --- a/Caf.Midden.Wasm/_Imports.razor +++ b/Caf.Midden.Wasm/_Imports.razor @@ -10,4 +10,4 @@ @using Caf.Midden.Wasm.Shared @using AntDesign @using AntDesign.Charts -@using Caf.Midden.Core.Models.v0_1 \ No newline at end of file +@using Caf.Midden.Core.Models.v0_2 \ No newline at end of file From 50f619acb1f1a4e0a0bd30b058d240f311c0ec70 Mon Sep 17 00:00:00 2001 From: bryanrcarlson Date: Wed, 23 Feb 2022 16:06:22 -0800 Subject: [PATCH 2/3] Added field required for a lineage graph --- Caf.Midden.Core/Models/v0_2/Dataset.cs | 3 +++ Caf.Midden.Wasm/Properties/launchSettings.json | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Caf.Midden.Core/Models/v0_2/Dataset.cs b/Caf.Midden.Core/Models/v0_2/Dataset.cs index 5fb230e..2447958 100644 --- a/Caf.Midden.Core/Models/v0_2/Dataset.cs +++ b/Caf.Midden.Core/Models/v0_2/Dataset.cs @@ -77,5 +77,8 @@ public class Dataset [JsonPropertyName("derivedWorks")] public List? DerivedWorks { get; set; } = new List(); + + [JsonPropertyName("parentDatasets")] + public List? ParentDatasets { get; set; } = new List(); } } diff --git a/Caf.Midden.Wasm/Properties/launchSettings.json b/Caf.Midden.Wasm/Properties/launchSettings.json index 00ad665..6e42fdf 100644 --- a/Caf.Midden.Wasm/Properties/launchSettings.json +++ b/Caf.Midden.Wasm/Properties/launchSettings.json @@ -32,7 +32,8 @@ }, "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "https://localhost:5001;http://localhost:5000", - "dotnetRunMessages": "true" + "dotnetRunMessages": "true", + "nativeDebugging": false } } } \ No newline at end of file From 5446afb25420687239dddfc2e1fd532566d7521a Mon Sep 17 00:00:00 2001 From: bryanrcarlson Date: Thu, 24 Feb 2022 09:44:35 -0800 Subject: [PATCH 3/3] Added parent datasets to editor and details --- Caf.Midden.Wasm/Shared/MetadataDetails.razor | 16 ++++++++++ Caf.Midden.Wasm/Shared/MetadataEditor.razor | 32 ++++++++++++++++++- .../Shared/MetadataEditor.razor.cs | 31 +++++++++++++++++- 3 files changed, 77 insertions(+), 2 deletions(-) diff --git a/Caf.Midden.Wasm/Shared/MetadataDetails.razor b/Caf.Midden.Wasm/Shared/MetadataDetails.razor index bbe6230..611700e 100644 --- a/Caf.Midden.Wasm/Shared/MetadataDetails.razor +++ b/Caf.Midden.Wasm/Shared/MetadataDetails.razor @@ -36,6 +36,22 @@ + + + +
+ Parent Datasets +
+ + + + + +
+
+
diff --git a/Caf.Midden.Wasm/Shared/MetadataEditor.razor b/Caf.Midden.Wasm/Shared/MetadataEditor.razor index 481412d..5db415c 100644 --- a/Caf.Midden.Wasm/Shared/MetadataEditor.razor +++ b/Caf.Midden.Wasm/Shared/MetadataEditor.razor @@ -276,7 +276,8 @@ - + @@ -300,6 +301,34 @@ } + + + + + + + + + + + +
+ @if (context.Dataset.ParentDatasets.Count > 0) + { + + + + @parentDataset + + + + + } +
+ @@ -326,6 +355,7 @@
} + diff --git a/Caf.Midden.Wasm/Shared/MetadataEditor.razor.cs b/Caf.Midden.Wasm/Shared/MetadataEditor.razor.cs index 8766643..68f9e23 100644 --- a/Caf.Midden.Wasm/Shared/MetadataEditor.razor.cs +++ b/Caf.Midden.Wasm/Shared/MetadataEditor.razor.cs @@ -320,10 +320,39 @@ private void DeleteDatasetMethodHandler(string method) } #endregion + #region Parent Datasets + private string NewParentDataset { get; set; } + + private void AddParentDataset(string parentDataset) + { + if (!string.IsNullOrWhiteSpace(parentDataset) && + !IsDuplicateParentDataset(parentDataset)) + { + State.MetadataEdit.Dataset.ParentDatasets.Add(parentDataset); + NewParentDataset = ""; + } + } + private bool IsDuplicateParentDataset(string parentDataset) + { + var dup = State.MetadataEdit.Dataset.ParentDatasets.Find(p => p == parentDataset); + if (string.IsNullOrEmpty(dup)) + return false; + else { return true; } + } + + private void AddParentDatasetHandler() + { + AddParentDataset(NewParentDataset); + } + private void DeleteParentDatasetHandler(string parentDataset) + { + State.MetadataEdit.Dataset.ParentDatasets.Remove(parentDataset); + } + #endregion + #region Derived Works private string NewDerivedWork { get; set; } - private void AddDerivedWork(string derived) { if (!string.IsNullOrWhiteSpace(derived) &&