From 0bc8ebc72192ee93d784dbcbf07cf1fa4fe8e052 Mon Sep 17 00:00:00 2001 From: Huy Hoang <10050270+hhoangnl@users.noreply.github.com> Date: Fri, 12 Feb 2021 18:54:17 +0100 Subject: [PATCH 1/4] Upgrade from netcoreapp3.1 to net5.0 --- src/Dash/src/Dash/Dash.csproj | 2 +- src/Dash/src/Dash/Engine/IModelRepository.cs | 2 +- .../Dash/Engine/Parsers/DefaultSourceCodeParser.cs | 14 +++++++------- .../Engine/Repositories/DefaultModelRepository.cs | 4 ++-- .../Dash/Engine/Visitors/DefaultModelBuilder.cs | 2 +- .../Dash.Tests/Common/HttpUriDownloaderTests.cs | 2 +- src/Dash/test/Dash.Tests/Dash.Tests.csproj | 2 +- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/Dash/src/Dash/Dash.csproj b/src/Dash/src/Dash/Dash.csproj index 120b8fbe..a844ae32 100644 --- a/src/Dash/src/Dash/Dash.csproj +++ b/src/Dash/src/Dash/Dash.csproj @@ -2,7 +2,7 @@ Exe - netcoreapp3.1 + net5.0 enable 0.6.0-alpha true diff --git a/src/Dash/src/Dash/Engine/IModelRepository.cs b/src/Dash/src/Dash/Engine/IModelRepository.cs index ee67f3ad..39252120 100644 --- a/src/Dash/src/Dash/Engine/IModelRepository.cs +++ b/src/Dash/src/Dash/Engine/IModelRepository.cs @@ -16,6 +16,6 @@ public interface IModelRepository EntityModel Get(string entityName); - bool TryGet(string entityName, out EntityModel entityModel); + bool TryGet(string entityName, out EntityModel? entityModel); } } \ No newline at end of file diff --git a/src/Dash/src/Dash/Engine/Parsers/DefaultSourceCodeParser.cs b/src/Dash/src/Dash/Engine/Parsers/DefaultSourceCodeParser.cs index 4cfa96a8..901f2fb7 100644 --- a/src/Dash/src/Dash/Engine/Parsers/DefaultSourceCodeParser.cs +++ b/src/Dash/src/Dash/Engine/Parsers/DefaultSourceCodeParser.cs @@ -51,7 +51,7 @@ private ConfigurationNode ParseConfiguration(JsonDocument document) var deserialized = JsonSerializer.Deserialize(configurationSourceCode); - foreach (var item in deserialized.Templates) + foreach (var item in deserialized!.Templates) { if (item.Output == null) { @@ -105,14 +105,14 @@ private void ProcessRelationshipProperty(JsonProperty objectProperty, string rel { foreach (var hasProperty in objectProperty.Value.EnumerateObject()) { - func(hasProperty.Name, hasProperty.Value.GetString()); + func(hasProperty.Name, hasProperty.Value.GetString()!); } } else if (objectProperty.Value.ValueKind == JsonValueKind.Array) { foreach (var hasProperty in objectProperty.Value.EnumerateArray()) { - func(hasProperty.GetString(), hasProperty.GetString()); + func(hasProperty.GetString()!, hasProperty.GetString()!); } } } @@ -129,7 +129,7 @@ private void TryTraverseSeed(EntityDeclarationNode entityDeclarationNode, JsonEl throw new ParserException("The 'FromCsv' value must be an Object"); } - var uri = new Uri(csvElement.GetProperty("Uri").GetString()); + var uri = new Uri(csvElement.GetProperty("Uri").GetString()!); var firstLineIsHeader = false; if (csvElement.TryGetProperty("FirstLineIsHeader", out var value)) @@ -146,7 +146,7 @@ private void TryTraverseSeed(EntityDeclarationNode entityDeclarationNode, JsonEl delimiter = delimiterJsonElement.GetString(); } - entityDeclarationNode.AddCsvSeedDeclarationNode(uri, firstLineIsHeader, delimiter, mapHeaders); + entityDeclarationNode.AddCsvSeedDeclarationNode(uri, firstLineIsHeader, delimiter, mapHeaders!); continue; } @@ -176,14 +176,14 @@ private void TraverseAttributes(EntityDeclarationNode entityDeclarationNode, Jso { if (attribute.Value.ValueKind == JsonValueKind.String) { - entityDeclarationNode.AddAttributeDeclaration(attribute.Name, attribute.Value.GetString()); + entityDeclarationNode.AddAttributeDeclaration(attribute.Name, attribute.Value.GetString()!); } } else { if (attribute.Name.IsSame("@@Inherits")) { - entityDeclarationNode.AddInheritanceDeclaration(attribute.Value.GetString()); + entityDeclarationNode.AddInheritanceDeclaration(attribute.Value.GetString()!); } else if (attribute.Name.IsSame("@@Abstract")) { diff --git a/src/Dash/src/Dash/Engine/Repositories/DefaultModelRepository.cs b/src/Dash/src/Dash/Engine/Repositories/DefaultModelRepository.cs index 655c2218..f595b214 100644 --- a/src/Dash/src/Dash/Engine/Repositories/DefaultModelRepository.cs +++ b/src/Dash/src/Dash/Engine/Repositories/DefaultModelRepository.cs @@ -41,10 +41,10 @@ public virtual EntityModel Get(string entityName) throw new EntityModelNotFoundException($"Entity '{entityName}' was not found in the repository"); } - return entity; + return entity!; } - public bool TryGet(string entityName, out EntityModel entityModel) + public bool TryGet(string entityName, out EntityModel? entityModel) { entityModel = _entityModels.SingleOrDefault(e => e.Name.IsSame(entityName)); return entityModel != null; diff --git a/src/Dash/src/Dash/Engine/Visitors/DefaultModelBuilder.cs b/src/Dash/src/Dash/Engine/Visitors/DefaultModelBuilder.cs index dbb8157a..baef642f 100644 --- a/src/Dash/src/Dash/Engine/Visitors/DefaultModelBuilder.cs +++ b/src/Dash/src/Dash/Engine/Visitors/DefaultModelBuilder.cs @@ -45,7 +45,7 @@ public override Task Visit(AttributeDeclarationNode node) var codeDataType = _codeLanguageProvider.Translate(result.DataType); var databaseDataType = _databaseLanguageProvider.Translate(result.DataType); - entityModel.CodeAttributes.Add(new AttributeModel(node.AttributeName, result, codeDataType)); + entityModel!.CodeAttributes.Add(new AttributeModel(node.AttributeName, result, codeDataType)); entityModel.DataAttributes.Add(new AttributeModel(node.AttributeName, result, databaseDataType)); } diff --git a/src/Dash/test/Dash.Tests/Common/HttpUriDownloaderTests.cs b/src/Dash/test/Dash.Tests/Common/HttpUriDownloaderTests.cs index 537b075c..62ec69ef 100644 --- a/src/Dash/test/Dash.Tests/Common/HttpUriDownloaderTests.cs +++ b/src/Dash/test/Dash.Tests/Common/HttpUriDownloaderTests.cs @@ -85,7 +85,7 @@ public async Task Visit_UriNodeDownloadSuccess_ShouldReturnSuccessfulTuple() // Assert result.Success.Should().BeTrue(); result.FileName.Should().Be("bar.csv"); - result.Content.SequenceEqual(await stringContent.ReadAsByteArrayAsync()).Should().BeTrue(); + result.Content.Should().NotBeNull().And.Subject.SequenceEqual(await stringContent.ReadAsByteArrayAsync()).Should().BeTrue(); } } } diff --git a/src/Dash/test/Dash.Tests/Dash.Tests.csproj b/src/Dash/test/Dash.Tests/Dash.Tests.csproj index 8801d220..1e47c735 100644 --- a/src/Dash/test/Dash.Tests/Dash.Tests.csproj +++ b/src/Dash/test/Dash.Tests/Dash.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 false From ae84b2604ffd5f73eeeb989d51f39d6ed81b99a0 Mon Sep 17 00:00:00 2001 From: Huy Hoang <10050270+hhoangnl@users.noreply.github.com> Date: Fri, 12 Feb 2021 19:03:43 +0100 Subject: [PATCH 2/4] Bump version --- docs/index.md | 4 ++-- src/Dash/src/Dash/Dash.csproj | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/index.md b/docs/index.md index 468c060e..e1d3febf 100644 --- a/docs/index.md +++ b/docs/index.md @@ -20,7 +20,7 @@ Here is a visual representation of the above: Installation is pretty simple, just copy and paste the following command: ~~~ -dotnet tool install --global dotnet-dash --version 0.6.0-alpha +dotnet tool install --global dotnet-dash --version 0.6.1-alpha ~~~ If you have successfully installed Dash, the following command will bring up the help screen: @@ -33,7 +33,7 @@ dotnet dash --help Updating to the latest, or different, version of Dash is equally simple: ~~~ -dotnet tool update --global dotnet-dash --version 0.6.0-alpha +dotnet tool update --global dotnet-dash --version 0.6.1-alpha ~~~ ## Hello World example diff --git a/src/Dash/src/Dash/Dash.csproj b/src/Dash/src/Dash/Dash.csproj index a844ae32..5f83cb86 100644 --- a/src/Dash/src/Dash/Dash.csproj +++ b/src/Dash/src/Dash/Dash.csproj @@ -4,7 +4,7 @@ Exe net5.0 enable - 0.6.0-alpha + 0.6.1-alpha true dotnet-dash ./nupkg From 9a3100693dcf8fbe1edddfb9cd11f90748384124 Mon Sep 17 00:00:00 2001 From: Huy Hoang <10050270+hhoangnl@users.noreply.github.com> Date: Fri, 12 Feb 2021 19:11:03 +0100 Subject: [PATCH 3/4] Fixing code smells --- src/Dash/src/Dash/Engine/Parsers/DefaultSourceCodeParser.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Dash/src/Dash/Engine/Parsers/DefaultSourceCodeParser.cs b/src/Dash/src/Dash/Engine/Parsers/DefaultSourceCodeParser.cs index 901f2fb7..7fc7ee27 100644 --- a/src/Dash/src/Dash/Engine/Parsers/DefaultSourceCodeParser.cs +++ b/src/Dash/src/Dash/Engine/Parsers/DefaultSourceCodeParser.cs @@ -80,7 +80,7 @@ private ModelNode ParseModel(JsonDocument document) return result; } - private void TraverseRelationshipProperties(EntityDeclarationNode entityDeclarationNode, JsonElement.ObjectEnumerator objectProperties) + private static void TraverseRelationshipProperties(EntityDeclarationNode entityDeclarationNode, JsonElement.ObjectEnumerator objectProperties) { objectProperties.Reset(); @@ -97,7 +97,7 @@ private void TraverseRelationshipProperties(EntityDeclarationNode entityDeclarat } } - private void ProcessRelationshipProperty(JsonProperty objectProperty, string relationship, Action func) + private static void ProcessRelationshipProperty(JsonProperty objectProperty, string relationship, Action func) { if (objectProperty.Name.IsSame(relationship)) { @@ -118,7 +118,7 @@ private void ProcessRelationshipProperty(JsonProperty objectProperty, string rel } } - private void TryTraverseSeed(EntityDeclarationNode entityDeclarationNode, JsonElement.ObjectEnumerator entityObjectProperties) + private static void TryTraverseSeed(EntityDeclarationNode entityDeclarationNode, JsonElement.ObjectEnumerator entityObjectProperties) { foreach (var item in entityObjectProperties.Where(e => e.Name.IsSame("@@Seed"))) { From 063b7c6ec620c25253ee0b3e4791c731d0c1b31c Mon Sep 17 00:00:00 2001 From: Huy Hoang <10050270+hhoangnl@users.noreply.github.com> Date: Fri, 12 Feb 2021 19:18:11 +0100 Subject: [PATCH 4/4] Fix code smells --- src/Dash/src/Dash/Engine/Parsers/DefaultSourceCodeParser.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Dash/src/Dash/Engine/Parsers/DefaultSourceCodeParser.cs b/src/Dash/src/Dash/Engine/Parsers/DefaultSourceCodeParser.cs index 7fc7ee27..81c210e9 100644 --- a/src/Dash/src/Dash/Engine/Parsers/DefaultSourceCodeParser.cs +++ b/src/Dash/src/Dash/Engine/Parsers/DefaultSourceCodeParser.cs @@ -62,7 +62,7 @@ private ConfigurationNode ParseConfiguration(JsonDocument document) return deserialized; } - private ModelNode ParseModel(JsonDocument document) + private static ModelNode ParseModel(JsonDocument document) { var result = new ModelNode(); @@ -154,7 +154,7 @@ private static void TryTraverseSeed(EntityDeclarationNode entityDeclarationNode, } } - private void TraverseModelEntities(ModelNode modelNode, JsonProperty entityObject) + private static void TraverseModelEntities(ModelNode modelNode, JsonProperty entityObject) { if (entityObject.Value.ValueKind == JsonValueKind.Object && !entityObject.Name.StartsWith("@@")) { @@ -167,7 +167,7 @@ private void TraverseModelEntities(ModelNode modelNode, JsonProperty entityObjec } } - private void TraverseAttributes(EntityDeclarationNode entityDeclarationNode, JsonElement.ObjectEnumerator attributes) + private static void TraverseAttributes(EntityDeclarationNode entityDeclarationNode, JsonElement.ObjectEnumerator attributes) { attributes.Reset(); foreach (var attribute in attributes)