diff --git a/visual-studio/Manifests/vs2019/source.extension.vsixmanifest b/visual-studio/Manifests/vs2019/source.extension.vsixmanifest deleted file mode 100644 index 34e1073..0000000 --- a/visual-studio/Manifests/vs2019/source.extension.vsixmanifest +++ /dev/null @@ -1,27 +0,0 @@ - - - - - ProtoAttributor - ProtoAttributor is an open source Visual Studio extension that can manage the appropriate attributes on a class to support ProtoBuf. It currently supports ProtoContract, ProtoMember, ProtoIgnore, DataContract, DataMember, IgnoreDataMemeber attributes. - https://github.com/d1820/proto-attributor - https://github.com/d1820/proto-attributor/releases - logo.png - ProtoImagePreview.jpg - ProtoBuf, ProtoBuf-Net, Code, Build, ReFormatting, Organizing, Attributing, Contracts, Serialization - - - - - - - - - - - - - - - - diff --git a/visual-studio/Manifests/vs2022/source.extension.vsixmanifest b/visual-studio/Manifests/vs2022/source.extension.vsixmanifest index 858d104..87e5a78 100644 --- a/visual-studio/Manifests/vs2022/source.extension.vsixmanifest +++ b/visual-studio/Manifests/vs2022/source.extension.vsixmanifest @@ -1,7 +1,7 @@ - + ProtoAttributor 2022 ProtoAttributor is an open source Visual Studio extension that can manage the appropriate attributes on a class to support ProtoBuf. It currently supports ProtoContract, ProtoMember, ProtoIgnore, DataContract, DataMember, IgnoreDataMemeber attributes. https://github.com/d1820/proto-attributor diff --git a/visual-studio/ProtoAttributor.Tests/DataContracts/AttributeReaderTests.cs b/visual-studio/ProtoAttributor.Tests/DataContracts/AttributeReaderTests.cs index 24a1e60..78f1a3c 100644 --- a/visual-studio/ProtoAttributor.Tests/DataContracts/AttributeReaderTests.cs +++ b/visual-studio/ProtoAttributor.Tests/DataContracts/AttributeReaderTests.cs @@ -1,5 +1,5 @@ using System.IO; -using FluentAssertions; +using Shouldly; using Microsoft.CodeAnalysis.CSharp; using ProtoAttributor.Parsers.DataContracts; using Xunit; @@ -21,7 +21,7 @@ public void GetsNextIdForDataMember() var output = protoReader.GetDataMemberNextId(tree.GetRoot()); - output.Should().Be(3); + output.ShouldBe(3); } } } diff --git a/visual-studio/ProtoAttributor.Tests/DataContracts/DataAttributeAdderTests.cs b/visual-studio/ProtoAttributor.Tests/DataContracts/DataAttributeAdderTests.cs index 85ae19b..c7d311b 100644 --- a/visual-studio/ProtoAttributor.Tests/DataContracts/DataAttributeAdderTests.cs +++ b/visual-studio/ProtoAttributor.Tests/DataContracts/DataAttributeAdderTests.cs @@ -1,5 +1,5 @@ using System; -using FluentAssertions; +using Shouldly; using Microsoft.CodeAnalysis.CSharp; using ProtoAttributor.Parsers.DataContracts; using Xunit; @@ -27,11 +27,11 @@ public void AddsAttributesForProtoBuf() var source = output.Split(new string[] { " ", "\r\n" }, StringSplitOptions.RemoveEmptyEntries); - output.Should().Contain("System.Runtime.Serialization"); - output.Should().Contain("[DataContract]"); - output.Should().Contain("[Required]"); - output.Should().Contain("[DataMember(Order = 1)]"); - output.Should().Contain("[DataMember(Order = 2)]"); + output.ShouldContain("System.Runtime.Serialization"); + output.ShouldContain("[DataContract]"); + output.ShouldContain("[Required]"); + output.ShouldContain("[DataMember(Order = 1)]"); + output.ShouldContain("[DataMember(Order = 2)]"); _fixture.AssertOutputContainsCount(source, "DataMember", 2); _fixture.AssertOutputContainsCount(source, "Required", 1); @@ -48,12 +48,12 @@ public void AddsAttributesForProtBufWherePropDontHaveIgnoreDataMember() var source = output.Split(new string[] { " ", "\r\n" }, StringSplitOptions.RemoveEmptyEntries); - output.Should().Contain("System.Runtime.Serialization"); - output.Should().Contain("[DataContract]"); - output.Should().Contain("[Required]"); - output.Should().Contain("[DataMember(Order = 1)]"); - output.Should().Contain("[DataMember(Order = 2)]"); - output.Should().Contain("[DataMember(Order = 3)]"); + output.ShouldContain("System.Runtime.Serialization"); + output.ShouldContain("[DataContract]"); + output.ShouldContain("[Required]"); + output.ShouldContain("[DataMember(Order = 1)]"); + output.ShouldContain("[DataMember(Order = 2)]"); + output.ShouldContain("[DataMember(Order = 3)]"); _fixture.AssertOutputContainsCount(source, "[DataMember", 3); _fixture.AssertOutputContainsCount(source, "[Required]", 1); @@ -70,17 +70,17 @@ public void AddsAttributesAndKeepCommentsInTack() var output = rewrittenRoot.GetText().ToString(); - output.Should().Contain("System.Runtime.Serialization"); - output.Should().Contain("[DataContract]"); - output.Should().Contain("[DataMember(Order = 1)]"); - output.Should().Contain("[DataMember(Order = 2)]"); + output.ShouldContain("System.Runtime.Serialization"); + output.ShouldContain("[DataContract]"); + output.ShouldContain("[DataMember(Order = 1)]"); + output.ShouldContain("[DataMember(Order = 2)]"); - output.Should().Contain(" /// "); - output.Should().Contain(" [DataMember(Order = 1)]"); - output.Should().Contain(" public int MyProperty { get; set; }"); + output.ShouldContain(" /// "); + output.ShouldContain(" [DataMember(Order = 1)]"); + output.ShouldContain(" public int MyProperty { get; set; }"); //This verifies spacing is correct - output.Should().Contain(@" + output.ShouldContain(@" /// Comments not wrapped /// My property. [DataMember(Order = 1)] @@ -97,10 +97,10 @@ public void AddsUsingWhenNoneExist() var output = rewrittenRoot.GetText().ToString(); - output.Should().Contain("System.Runtime.Serialization"); - output.Should().Contain("[DataContract]"); - output.Should().Contain("[DataMember(Order = 1)]"); - output.Should().Contain("[DataMember(Order = 2)]"); + output.ShouldContain("System.Runtime.Serialization"); + output.ShouldContain("[DataContract]"); + output.ShouldContain("[DataMember(Order = 1)]"); + output.ShouldContain("[DataMember(Order = 2)]"); } [Fact] @@ -113,12 +113,12 @@ public void AddsAttributesWithCorrectOrderWhenAttributesAlreadyExists() var output = rewrittenRoot.GetText().ToString(); - output.Should().Contain("System.Runtime.Serialization"); - output.Should().Contain("[DataContract]"); - output.Should().Contain("[DataMember(Order = 1)]"); - output.Should().Contain("[DataMember(Order = 2)]"); - output.Should().Contain("[DataMember(Order = 3)]"); - output.Should().Contain("[DataMember(Name = \"Test\")]"); + output.ShouldContain("System.Runtime.Serialization"); + output.ShouldContain("[DataContract]"); + output.ShouldContain("[DataMember(Order = 1)]"); + output.ShouldContain("[DataMember(Order = 2)]"); + output.ShouldContain("[DataMember(Order = 3)]"); + output.ShouldContain("[DataMember(Name = \"Test\")]"); } [Fact] @@ -130,10 +130,10 @@ public void AddsAttributesWithCorrectOrderWhenFileHasWierdFormatting() var output = rewrittenRoot.GetText().ToString(); - output.Should().Contain("System.Runtime.Serialization"); - output.Should().Contain("[DataContract]"); - output.Should().Contain("[DataMember(Order = 1)]"); - output.Should().Contain("[DataMember(Order = 2)]"); + output.ShouldContain("System.Runtime.Serialization"); + output.ShouldContain("[DataContract]"); + output.ShouldContain("[DataMember(Order = 1)]"); + output.ShouldContain("[DataMember(Order = 2)]"); } [Fact] @@ -146,12 +146,12 @@ public void AddsAttributesWithCorrectOrderWhenFileHasProtoIgnores() var output = rewrittenRoot.GetText().ToString(); var source = output.Split(new string[] { " ", "\r\n" }, StringSplitOptions.RemoveEmptyEntries); - output.Should().Contain("System.Runtime.Serialization"); - output.Should().Contain("[DataContract]"); - output.Should().Contain("[DataMember(Order = 1)]"); - output.Should().Contain("[DataMember(Order = 2)]"); - output.Should().Contain("[DataMember(Order = 14)]"); - output.Should().Contain("[DataMember(Order = 16)]"); + output.ShouldContain("System.Runtime.Serialization"); + output.ShouldContain("[DataContract]"); + output.ShouldContain("[DataMember(Order = 1)]"); + output.ShouldContain("[DataMember(Order = 2)]"); + output.ShouldContain("[DataMember(Order = 14)]"); + output.ShouldContain("[DataMember(Order = 16)]"); _fixture.AssertOutputContainsCount(source, "[IgnoreDataMember]", 2); } @@ -165,9 +165,9 @@ public void AddsAttributesWhenFileIsEnum() var output = rewrittenRoot.GetText().ToString(); var source = output.Split(new string[] { " ", "\r\n" }, StringSplitOptions.RemoveEmptyEntries); - output.Should().Contain("System.Runtime.Serialization"); - output.Should().Contain("[DataContract]"); - output.Should().Contain("[EnumMember]"); + output.ShouldContain("System.Runtime.Serialization"); + output.ShouldContain("[DataContract]"); + output.ShouldContain("[EnumMember]"); _fixture.AssertOutputContainsCount(source, "[EnumMember]", 5); } @@ -182,9 +182,9 @@ public void AddsAttributesWhenFileIsEnumWithExistingAttributes() var output = rewrittenRoot.GetText().ToString(); var source = output.Split(new string[] { " ", "\r\n" }, StringSplitOptions.RemoveEmptyEntries); - output.Should().Contain("System.Runtime.Serialization"); - output.Should().Contain("[DataContract]"); - output.Should().Contain("[EnumMember]"); + output.ShouldContain("System.Runtime.Serialization"); + output.ShouldContain("[DataContract]"); + output.ShouldContain("[EnumMember]"); _fixture.AssertOutputContainsCount(source, "[EnumMember]", 5); } @@ -198,9 +198,9 @@ public void AddsAttributesWhenFileIsEnumWithIgnoreAttributes() var output = rewrittenRoot.GetText().ToString(); var source = output.Split(new string[] { " ", "\r\n" }, StringSplitOptions.RemoveEmptyEntries); - output.Should().Contain("System.Runtime.Serialization"); - output.Should().Contain("[DataContract]"); - output.Should().Contain("[EnumMember]"); + output.ShouldContain("System.Runtime.Serialization"); + output.ShouldContain("[DataContract]"); + output.ShouldContain("[EnumMember]"); _fixture.AssertOutputContainsCount(source, "[EnumMember]", 3); _fixture.AssertOutputContainsCount(source, "[IgnoreDataMember]", 2); } diff --git a/visual-studio/ProtoAttributor.Tests/DataContracts/DataAttributeRemoverTests.cs b/visual-studio/ProtoAttributor.Tests/DataContracts/DataAttributeRemoverTests.cs index 77142a4..1d42fec 100644 --- a/visual-studio/ProtoAttributor.Tests/DataContracts/DataAttributeRemoverTests.cs +++ b/visual-studio/ProtoAttributor.Tests/DataContracts/DataAttributeRemoverTests.cs @@ -1,4 +1,4 @@ -using FluentAssertions; +using Shouldly; using Microsoft.CodeAnalysis.CSharp; using ProtoAttributor.Parsers.DataContracts; using Xunit; @@ -24,18 +24,18 @@ public void AddsAttributesWithCorrectOrderWhenAttributesAlreadyExists() var output = rewrittenRoot.GetText().ToString(); - output.Should().NotContain("System.Runtime.Serialization"); - output.Should().NotContain("[DataContract]"); - output.Should().NotContain("[KnownType"); - output.Should().NotContain("[IgnoreDataMember]"); - output.Should().NotContain("[EnumMember]"); - output.Should().NotContain(@"[DataMember(Order = 1, Name=""Test"")]"); - output.Should().NotContain("[DataMember(Order = 2)]"); - output.Should().NotContain(@"DataMember(Name = ""test12"")"); + output.ShouldNotContain("System.Runtime.Serialization"); + output.ShouldNotContain("[DataContract]"); + output.ShouldNotContain("[KnownType"); + output.ShouldNotContain("[IgnoreDataMember]"); + output.ShouldNotContain("[EnumMember]"); + output.ShouldNotContain(@"[DataMember(Order = 1, Name=""Test"")]"); + output.ShouldNotContain("[DataMember(Order = 2)]"); + output.ShouldNotContain(@"DataMember(Name = ""test12"")"); - output.Should().Contain("[Required]"); + output.ShouldContain("[Required]"); - output.Should().Contain("[Serializable]"); + output.ShouldContain("[Serializable]"); } } } diff --git a/visual-studio/ProtoAttributor.Tests/DataContracts/DataAttributeRewriterTests.cs b/visual-studio/ProtoAttributor.Tests/DataContracts/DataAttributeRewriterTests.cs index 4f239e4..3c2fff5 100644 --- a/visual-studio/ProtoAttributor.Tests/DataContracts/DataAttributeRewriterTests.cs +++ b/visual-studio/ProtoAttributor.Tests/DataContracts/DataAttributeRewriterTests.cs @@ -1,5 +1,5 @@ using System; -using FluentAssertions; +using Shouldly; using Microsoft.CodeAnalysis.CSharp; using ProtoAttributor.Parsers.DataContracts; using Xunit; @@ -46,12 +46,12 @@ public void RewritesAttributesWithCorrectOrderWhenAttributesAlreadyExists() var output = rewrittenRoot.GetText().ToString(); - output.Should().Contain("System.Runtime.Serialization"); - output.Should().Contain("[DataContract]"); - output.Should().Contain(@"[DataMember(Order = 1, Name=""Test"")]"); - output.Should().Contain("[DataMember(Order = 2)]"); - output.Should().Contain("[DataMember(Order = 3)]"); - output.Should().Contain("[DataMember(Order = 4)]"); + output.ShouldContain("System.Runtime.Serialization"); + output.ShouldContain("[DataContract]"); + output.ShouldContain(@"[DataMember(Order = 1, Name=""Test"")]"); + output.ShouldContain("[DataMember(Order = 2)]"); + output.ShouldContain("[DataMember(Order = 3)]"); + output.ShouldContain("[DataMember(Order = 4)]"); } [Fact] @@ -64,12 +64,12 @@ public void RewritesAttributesWithCorrectOrderWhenFileHasProtoIgnores() var output = rewrittenRoot.GetText().ToString(); var source = output.Split(new string[] { " ", "\r\n" }, StringSplitOptions.RemoveEmptyEntries); - output.Should().Contain("System.Runtime.Serialization"); - output.Should().Contain("[DataContract]"); - output.Should().Contain("[DataMember(Order = 1)]"); - output.Should().Contain("[DataMember(Order = 2)]"); - output.Should().Contain("[DataMember(Order = 3)]"); - output.Should().Contain("[DataMember(Order = 4)]"); + output.ShouldContain("System.Runtime.Serialization"); + output.ShouldContain("[DataContract]"); + output.ShouldContain("[DataMember(Order = 1)]"); + output.ShouldContain("[DataMember(Order = 2)]"); + output.ShouldContain("[DataMember(Order = 3)]"); + output.ShouldContain("[DataMember(Order = 4)]"); _fixture.AssertOutputContainsCount(source, "[IgnoreDataMember]", 2); } @@ -83,12 +83,12 @@ public void RewritesAttributesWithCorrectOrderWhenAttributeExistsWithoutOrderPro var output = rewrittenRoot.GetText().ToString(); var source = output.Split(new string[] { " ", "\r\n" }, StringSplitOptions.RemoveEmptyEntries); - output.Should().Contain("System.Runtime.Serialization"); - output.Should().Contain("[DataContract]"); - output.Should().Contain("[DataMember(Order = 1)]"); - output.Should().Contain("[DataMember(Order = 2)]"); - output.Should().Contain(@"[DataMember(Name =""test"",Order = 3)]"); - output.Should().Contain("[DataMember(Order = 4)]"); + output.ShouldContain("System.Runtime.Serialization"); + output.ShouldContain("[DataContract]"); + output.ShouldContain("[DataMember(Order = 1)]"); + output.ShouldContain("[DataMember(Order = 2)]"); + output.ShouldContain(@"[DataMember(Name =""test"",Order = 3)]"); + output.ShouldContain("[DataMember(Order = 4)]"); _fixture.AssertOutputContainsCount(source, "[IgnoreDataMember]", 1); } @@ -102,8 +102,8 @@ public void RewritesEnumAttributesWhenFileHasDataMemeberIgnores() var output = rewrittenRoot.GetText().ToString(); var source = output.Split(new string[] { " ", "\r\n" }, StringSplitOptions.RemoveEmptyEntries); - output.Should().Contain("System.Runtime.Serialization"); - output.Should().Contain("[DataContract]"); + output.ShouldContain("System.Runtime.Serialization"); + output.ShouldContain("[DataContract]"); _fixture.AssertOutputContainsCount(source, "[IgnoreDataMember]", 2); _fixture.AssertOutputContainsCount(source, "[EnumMember]", 3); } @@ -118,8 +118,8 @@ public void RewritesAttributesWithOrderPropertyWhenMissing() var output = rewrittenRoot.GetText().ToString(); var source = output.Split(new string[] { " ", "\r\n" }, StringSplitOptions.RemoveEmptyEntries); - output.Should().Contain("System.Runtime.Serialization"); - output.Should().Contain("[DataContract]"); + output.ShouldContain("System.Runtime.Serialization"); + output.ShouldContain("[DataContract]"); _fixture.AssertOutputContainsCount(source, "Order", 5); //includes 1 for the name of class } } diff --git a/visual-studio/ProtoAttributor.Tests/ProtoAttributor.Tests.csproj b/visual-studio/ProtoAttributor.Tests/ProtoAttributor.Tests.csproj index eff9676..db2009c 100644 --- a/visual-studio/ProtoAttributor.Tests/ProtoAttributor.Tests.csproj +++ b/visual-studio/ProtoAttributor.Tests/ProtoAttributor.Tests.csproj @@ -6,16 +6,16 @@ - - - - - - + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/visual-studio/ProtoAttributor.Tests/ProtoContracts/AttributeReaderTests.cs b/visual-studio/ProtoAttributor.Tests/ProtoContracts/AttributeReaderTests.cs index b1a05ee..5a5381c 100644 --- a/visual-studio/ProtoAttributor.Tests/ProtoContracts/AttributeReaderTests.cs +++ b/visual-studio/ProtoAttributor.Tests/ProtoContracts/AttributeReaderTests.cs @@ -1,5 +1,5 @@ using System.IO; -using FluentAssertions; +using Shouldly; using Microsoft.CodeAnalysis.CSharp; using ProtoAttributor.Parsers.ProtoContracts; using Xunit; @@ -21,7 +21,7 @@ public void GetsNextIdForProtoMember() var output = protoReader.GetProtoNextId(tree.GetRoot()); - output.Should().Be(3); + output.ShouldBe(3); } } } diff --git a/visual-studio/ProtoAttributor.Tests/ProtoContracts/ProtoAttributeAdderTests.cs b/visual-studio/ProtoAttributor.Tests/ProtoContracts/ProtoAttributeAdderTests.cs index 2fa31bc..f61a067 100644 --- a/visual-studio/ProtoAttributor.Tests/ProtoContracts/ProtoAttributeAdderTests.cs +++ b/visual-studio/ProtoAttributor.Tests/ProtoContracts/ProtoAttributeAdderTests.cs @@ -1,5 +1,5 @@ using System; -using FluentAssertions; +using Shouldly; using Microsoft.CodeAnalysis.CSharp; using ProtoAttributor.Parsers.ProtoContracts; using Xunit; @@ -27,10 +27,10 @@ public void AddsAttributesForProtBuf_WhenClassWithNoBracketNamespace() var source = output.Split(new string[] { " ", "\r\n" }, StringSplitOptions.RemoveEmptyEntries); - output.Should().Contain("using ProtoBuf;"); - output.Should().Contain("[ProtoContract]"); - output.Should().Contain("[ProtoMember(1)]"); - output.Should().Contain("[ProtoMember(2)]"); + output.ShouldContain("using ProtoBuf;"); + output.ShouldContain("[ProtoContract]"); + output.ShouldContain("[ProtoMember(1)]"); + output.ShouldContain("[ProtoMember(2)]"); _fixture.AssertOutputContainsCount(source, "ProtoMember", 2); } @@ -47,10 +47,10 @@ public void AddsAttributesForProtBuf_WhenClassWithNoUsings() var source = output.Split(new string[] { " ", "\r\n" }, StringSplitOptions.RemoveEmptyEntries); - output.Should().Contain("using ProtoBuf;"); - output.Should().Contain("[ProtoContract]"); - output.Should().Contain("[ProtoMember(1)]"); - output.Should().Contain("[ProtoMember(2)]"); + output.ShouldContain("using ProtoBuf;"); + output.ShouldContain("[ProtoContract]"); + output.ShouldContain("[ProtoMember(1)]"); + output.ShouldContain("[ProtoMember(2)]"); _fixture.AssertOutputContainsCount(source, "ProtoMember", 2); } @@ -67,11 +67,11 @@ public void AddsAttributesForProtBuf() var source = output.Split(new string[] { " ", "\r\n" }, StringSplitOptions.RemoveEmptyEntries); - output.Should().Contain("ProtoBuf"); - output.Should().Contain("[ProtoContract]"); - output.Should().Contain("[Required]"); - output.Should().Contain("[ProtoMember(1)]"); - output.Should().Contain("[ProtoMember(2)]"); + output.ShouldContain("ProtoBuf"); + output.ShouldContain("[ProtoContract]"); + output.ShouldContain("[Required]"); + output.ShouldContain("[ProtoMember(1)]"); + output.ShouldContain("[ProtoMember(2)]"); _fixture.AssertOutputContainsCount(source, "ProtoMember", 2); _fixture.AssertOutputContainsCount(source, "Required", 1); @@ -88,12 +88,12 @@ public void AddsAttributesForProtBufWherePropDontHaveProtoIgnore() var source = output.Split(new string[] { " ", "\r\n" }, StringSplitOptions.RemoveEmptyEntries); - output.Should().Contain("ProtoBuf"); - output.Should().Contain("[ProtoContract]"); - output.Should().Contain("[Required]"); - output.Should().Contain("[ProtoMember(1)]"); - output.Should().Contain("[ProtoMember(2)]"); - output.Should().Contain("[ProtoMember(3)]"); + output.ShouldContain("ProtoBuf"); + output.ShouldContain("[ProtoContract]"); + output.ShouldContain("[Required]"); + output.ShouldContain("[ProtoMember(1)]"); + output.ShouldContain("[ProtoMember(2)]"); + output.ShouldContain("[ProtoMember(3)]"); _fixture.AssertOutputContainsCount(source, "[ProtoMember", 3); _fixture.AssertOutputContainsCount(source, "[Required]", 1); @@ -110,17 +110,17 @@ public void AddsAttributesAndKeepCommentsInTack() var output = rewrittenRoot.GetText().ToString(); - output.Should().Contain("ProtoBuf"); - output.Should().Contain("[ProtoContract]"); - output.Should().Contain("[ProtoMember(1)]"); - output.Should().Contain("[ProtoMember(2)]"); + output.ShouldContain("ProtoBuf"); + output.ShouldContain("[ProtoContract]"); + output.ShouldContain("[ProtoMember(1)]"); + output.ShouldContain("[ProtoMember(2)]"); - output.Should().Contain(" /// "); - output.Should().Contain(" [ProtoMember(1)]"); - output.Should().Contain(" public int MyProperty { get; set; }"); + output.ShouldContain(" /// "); + output.ShouldContain(" [ProtoMember(1)]"); + output.ShouldContain(" public int MyProperty { get; set; }"); //This verifies spacing is correct - output.Should().Contain(@" + output.ShouldContain(@" /// Comments not wrapped /// My property. [ProtoMember(1)] @@ -137,10 +137,10 @@ public void AddsUsingWhenNoneExist() var output = rewrittenRoot.GetText().ToString(); - output.Should().Contain("ProtoBuf"); - output.Should().Contain("[ProtoContract]"); - output.Should().Contain("[ProtoMember(1)]"); - output.Should().Contain("[ProtoMember(2)]"); + output.ShouldContain("ProtoBuf"); + output.ShouldContain("[ProtoContract]"); + output.ShouldContain("[ProtoMember(1)]"); + output.ShouldContain("[ProtoMember(2)]"); } [Fact] @@ -153,12 +153,12 @@ public void AddsAttributesWithCorrectOrderWhenAttributesAlreadyExists() var output = rewrittenRoot.GetText().ToString(); - output.Should().Contain("ProtoBuf"); - output.Should().Contain("[ProtoContract]"); - output.Should().Contain("[ProtoMember(1)]"); - output.Should().Contain("[ProtoMember(2)]"); - output.Should().Contain("[ProtoMember(3)]"); - output.Should().Contain("[ProtoMember(4)]"); + output.ShouldContain("ProtoBuf"); + output.ShouldContain("[ProtoContract]"); + output.ShouldContain("[ProtoMember(1)]"); + output.ShouldContain("[ProtoMember(2)]"); + output.ShouldContain("[ProtoMember(3)]"); + output.ShouldContain("[ProtoMember(4)]"); } [Fact] @@ -170,10 +170,10 @@ public void AddsAttributesWithCorrectOrderWhenFileHasWierdFormatting() var output = rewrittenRoot.GetText().ToString(); - output.Should().Contain("ProtoBuf"); - output.Should().Contain("[ProtoContract]"); - output.Should().Contain("[ProtoMember(1)]"); - output.Should().Contain("[ProtoMember(2)]"); + output.ShouldContain("ProtoBuf"); + output.ShouldContain("[ProtoContract]"); + output.ShouldContain("[ProtoMember(1)]"); + output.ShouldContain("[ProtoMember(2)]"); } [Fact] @@ -186,12 +186,12 @@ public void AddsAttributesWithCorrectOrderWhenFileHasProtoIgnores() var output = rewrittenRoot.GetText().ToString(); var source = output.Split(new string[] { " ", "\r\n" }, StringSplitOptions.RemoveEmptyEntries); - output.Should().Contain("ProtoBuf"); - output.Should().Contain("[ProtoContract]"); - output.Should().Contain("[ProtoMember(1)]"); - output.Should().Contain("[ProtoMember(2)]"); - output.Should().Contain("[ProtoMember(14)]"); - output.Should().Contain("[ProtoMember(16)]"); + output.ShouldContain("ProtoBuf"); + output.ShouldContain("[ProtoContract]"); + output.ShouldContain("[ProtoMember(1)]"); + output.ShouldContain("[ProtoMember(2)]"); + output.ShouldContain("[ProtoMember(14)]"); + output.ShouldContain("[ProtoMember(16)]"); _fixture.AssertOutputContainsCount(source, "[ProtoIgnore]", 2); } @@ -205,9 +205,9 @@ public void AddsAttributesWhenFileIsEnum() var output = rewrittenRoot.GetText().ToString(); var source = output.Split(new string[] { " ", "\r\n" }, StringSplitOptions.RemoveEmptyEntries); - output.Should().Contain("ProtoBuf"); - output.Should().Contain("[ProtoContract]"); - output.Should().Contain("[ProtoEnum]"); + output.ShouldContain("ProtoBuf"); + output.ShouldContain("[ProtoContract]"); + output.ShouldContain("[ProtoEnum]"); _fixture.AssertOutputContainsCount(source, "[ProtoEnum]", 5); } @@ -221,9 +221,9 @@ public void AddsAttributesWhenFileIsEnumWithExistingAttributes() var output = rewrittenRoot.GetText().ToString(); var source = output.Split(new string[] { " ", "\r\n" }, StringSplitOptions.RemoveEmptyEntries); - output.Should().Contain("ProtoBuf"); - output.Should().Contain("[ProtoContract]"); - output.Should().Contain("[ProtoEnum]"); + output.ShouldContain("ProtoBuf"); + output.ShouldContain("[ProtoContract]"); + output.ShouldContain("[ProtoEnum]"); _fixture.AssertOutputContainsCount(source, "[ProtoEnum]", 5); } @@ -237,9 +237,9 @@ public void AddsAttributesWhenFileIsEnumWithIgnoreAttributes() var output = rewrittenRoot.GetText().ToString(); var source = output.Split(new string[] { " ", "\r\n" }, StringSplitOptions.RemoveEmptyEntries); - output.Should().Contain("ProtoBuf"); - output.Should().Contain("[ProtoContract]"); - output.Should().Contain("[ProtoEnum]"); + output.ShouldContain("ProtoBuf"); + output.ShouldContain("[ProtoContract]"); + output.ShouldContain("[ProtoEnum]"); _fixture.AssertOutputContainsCount(source, "[ProtoEnum]", 3); _fixture.AssertOutputContainsCount(source, "[ProtoIgnore]", 2); } diff --git a/visual-studio/ProtoAttributor.Tests/ProtoContracts/ProtoAttributeRemoverTests.cs b/visual-studio/ProtoAttributor.Tests/ProtoContracts/ProtoAttributeRemoverTests.cs index 7ce08ef..65a41c7 100644 --- a/visual-studio/ProtoAttributor.Tests/ProtoContracts/ProtoAttributeRemoverTests.cs +++ b/visual-studio/ProtoAttributor.Tests/ProtoContracts/ProtoAttributeRemoverTests.cs @@ -1,4 +1,4 @@ -using FluentAssertions; +using Shouldly; using Microsoft.CodeAnalysis.CSharp; using ProtoAttributor.Parsers.ProtoContracts; using Xunit; @@ -24,17 +24,17 @@ public void RemovesProtoAttributesWhenAttributesAlreadyExists() var output = rewrittenRoot.GetText().ToString(); - output.Should().NotContain("ProtoBuf"); - output.Should().NotContain("[ProtoContract]"); - output.Should().NotContain("[ProtoInclude]"); - output.Should().NotContain("[ProtoEnum]"); - output.Should().NotContain("[ProtoIgnore]"); - output.Should().NotContain(@"[ProtoMember(1, Name=""Test"")]"); - output.Should().NotContain("[ProtoMember(2)]"); + output.ShouldNotContain("ProtoBuf"); + output.ShouldNotContain("[ProtoContract]"); + output.ShouldNotContain("[ProtoInclude]"); + output.ShouldNotContain("[ProtoEnum]"); + output.ShouldNotContain("[ProtoIgnore]"); + output.ShouldNotContain(@"[ProtoMember(1, Name=""Test"")]"); + output.ShouldNotContain("[ProtoMember(2)]"); - output.Should().Contain("[Required]"); + output.ShouldContain("[Required]"); - output.Should().Contain("[Serializable]"); + output.ShouldContain("[Serializable]"); } } } diff --git a/visual-studio/ProtoAttributor.Tests/ProtoContracts/ProtoAttributeRewriterTests.cs b/visual-studio/ProtoAttributor.Tests/ProtoContracts/ProtoAttributeRewriterTests.cs index e1b73f3..1758552 100644 --- a/visual-studio/ProtoAttributor.Tests/ProtoContracts/ProtoAttributeRewriterTests.cs +++ b/visual-studio/ProtoAttributor.Tests/ProtoContracts/ProtoAttributeRewriterTests.cs @@ -1,5 +1,5 @@ using System; -using FluentAssertions; +using Shouldly; using Microsoft.CodeAnalysis.CSharp; using ProtoAttributor.Parsers.ProtoContracts; using Xunit; @@ -46,12 +46,12 @@ public void RewritesAttributesWithCorrectOrderWhenAttributesAlreadyExists() var output = rewrittenRoot.GetText().ToString(); - output.Should().Contain("ProtoBuf"); - output.Should().Contain("[ProtoContract]"); - output.Should().Contain(@"[ProtoMember(1, Name=""Test"")]"); - output.Should().Contain("[ProtoMember(2)]"); - output.Should().Contain("[ProtoMember(3)]"); - output.Should().Contain("[ProtoMember(4)]"); + output.ShouldContain("ProtoBuf"); + output.ShouldContain("[ProtoContract]"); + output.ShouldContain(@"[ProtoMember(1, Name=""Test"")]"); + output.ShouldContain("[ProtoMember(2)]"); + output.ShouldContain("[ProtoMember(3)]"); + output.ShouldContain("[ProtoMember(4)]"); } [Fact] @@ -64,12 +64,12 @@ public void RewritesAttributesWithCorrectOrderWhenFileHasProtoIgnores() var output = rewrittenRoot.GetText().ToString(); var source = output.Split(new string[] { " ", "\r\n" }, StringSplitOptions.RemoveEmptyEntries); - output.Should().Contain("ProtoBuf"); - output.Should().Contain("[ProtoContract]"); - output.Should().Contain("[ProtoMember(1)]"); - output.Should().Contain("[ProtoMember(2)]"); - output.Should().Contain("[ProtoMember(3)]"); - output.Should().Contain("[ProtoMember(4)]"); + output.ShouldContain("ProtoBuf"); + output.ShouldContain("[ProtoContract]"); + output.ShouldContain("[ProtoMember(1)]"); + output.ShouldContain("[ProtoMember(2)]"); + output.ShouldContain("[ProtoMember(3)]"); + output.ShouldContain("[ProtoMember(4)]"); _fixture.AssertOutputContainsCount(source, "[ProtoIgnore]", 2); } @@ -83,8 +83,8 @@ public void RewritesEnumAttributesFileHasProtoIgnores() var output = rewrittenRoot.GetText().ToString(); var source = output.Split(new string[] { " ", "\r\n" }, StringSplitOptions.RemoveEmptyEntries); - output.Should().Contain("ProtoBuf"); - output.Should().Contain("[ProtoContract]"); + output.ShouldContain("ProtoBuf"); + output.ShouldContain("[ProtoContract]"); _fixture.AssertOutputContainsCount(source, "[ProtoIgnore]", 2); _fixture.AssertOutputContainsCount(source, "[ProtoEnum]", 3); } diff --git a/visual-studio/ProtoAttributor.Tests/TestFixure.cs b/visual-studio/ProtoAttributor.Tests/TestFixure.cs index 0ab3234..a29c469 100644 --- a/visual-studio/ProtoAttributor.Tests/TestFixure.cs +++ b/visual-studio/ProtoAttributor.Tests/TestFixure.cs @@ -1,7 +1,7 @@ using System; using System.IO; using System.Linq; -using FluentAssertions; +using Shouldly; namespace ProtoAttributor.Tests { @@ -18,7 +18,7 @@ public void AssertOutputContainsCount(string[] source, string searchTerm, int nu where word.IndexOf(searchTerm, StringComparison.InvariantCultureIgnoreCase) > -1 select word; - matchQuery.Count().Should().Be(numOfTimes); + matchQuery.Count().ShouldBe(numOfTimes); } } } diff --git a/visual-studio/ProtoAttributor.sln b/visual-studio/ProtoAttributor.sln index b3f5320..822b433 100644 --- a/visual-studio/ProtoAttributor.sln +++ b/visual-studio/ProtoAttributor.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.0.31903.59 +# Visual Studio Version 18 +VisualStudioVersion = 18.0.11205.157 d18.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtoAttributor", "ProtoAttributor\ProtoAttributor.csproj", "{D166A1D7-30C3-4789-8970-FB3CF7DC9097}" EndProject @@ -18,11 +18,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Manifests", "Manifests", "{7D0C4464-A2B6-445E-A5B3-65B56D486D5D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "vs2019", "vs2019", "{539431F8-79AD-447C-A720-1DE69521BBB6}" - ProjectSection(SolutionItems) = preProject - Manifests\vs2019\source.extension.vsixmanifest = Manifests\vs2019\source.extension.vsixmanifest - EndProjectSection -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "vs2022", "vs2022", "{F2631D48-BF7F-4DF2-B9BC-6F698DF98F3F}" ProjectSection(SolutionItems) = preProject Manifests\vs2022\source.extension.vsixmanifest = Manifests\vs2022\source.extension.vsixmanifest @@ -54,7 +49,6 @@ Global HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {539431F8-79AD-447C-A720-1DE69521BBB6} = {7D0C4464-A2B6-445E-A5B3-65B56D486D5D} {F2631D48-BF7F-4DF2-B9BC-6F698DF98F3F} = {7D0C4464-A2B6-445E-A5B3-65B56D486D5D} {A13BD3A5-8144-4560-BBDD-00B8D267CF5A} = {95455455-C546-4BE9-A3E9-57CD29050882} EndGlobalSection diff --git a/visual-studio/ProtoAttributor/Parsers/DataContracts/DataAttributeReader.cs b/visual-studio/ProtoAttributor/Parsers/DataContracts/DataAttributeReader.cs index 6f3bca2..79d73c9 100644 --- a/visual-studio/ProtoAttributor/Parsers/DataContracts/DataAttributeReader.cs +++ b/visual-studio/ProtoAttributor/Parsers/DataContracts/DataAttributeReader.cs @@ -41,7 +41,7 @@ public override void VisitPropertyDeclaration(PropertyDeclarationSyntax node) var argument = item.ArgumentList.Arguments.FirstOrDefault(f=>f.NameEquals.Name.Identifier.ValueText.Equals("Order")); if(argument != null && argument.Expression.Kind() == SyntaxKind.NumericLiteralExpression) { - var tokenValue = argument.Expression.ChildTokens().FirstOrDefault(f => f.Kind() == SyntaxKind.NumericLiteralToken); + var tokenValue = argument.Expression.ChildTokens().FirstOrDefault(f => f.IsKind(SyntaxKind.NumericLiteralToken)); if(tokenValue != null) { var order = Convert.ToInt32( tokenValue.Value); diff --git a/visual-studio/ProtoAttributor/Parsers/DataContracts/DataAttributeRewriter.cs b/visual-studio/ProtoAttributor/Parsers/DataContracts/DataAttributeRewriter.cs index 99a14f1..41ab31b 100644 --- a/visual-studio/ProtoAttributor/Parsers/DataContracts/DataAttributeRewriter.cs +++ b/visual-studio/ProtoAttributor/Parsers/DataContracts/DataAttributeRewriter.cs @@ -75,7 +75,7 @@ public override SyntaxNode VisitPropertyDeclaration(PropertyDeclarationSyntax no SeparatedSyntaxList newSeparatedArgList; if (attributeArguementSyntax?.Expression?.Kind() == SyntaxKind.NumericLiteralExpression) { - var oldToken = attributeArguementSyntax.Expression.ChildTokens().FirstOrDefault(f => f.Kind() == SyntaxKind.NumericLiteralToken); + var oldToken = attributeArguementSyntax.Expression.ChildTokens().FirstOrDefault(f => f.IsKind(SyntaxKind.NumericLiteralToken)); if (oldToken == default) { continue; diff --git a/visual-studio/ProtoAttributor/Parsers/TriviaMaintainer.cs b/visual-studio/ProtoAttributor/Parsers/TriviaMaintainer.cs index d9ab8c8..c285dfa 100644 --- a/visual-studio/ProtoAttributor/Parsers/TriviaMaintainer.cs +++ b/visual-studio/ProtoAttributor/Parsers/TriviaMaintainer.cs @@ -16,7 +16,7 @@ public static PropertyDeclarationSyntax Apply(PropertyDeclarationSyntax node, Fu node = node.WithoutLeadingTrivia(); node = node.WithoutTrailingTrivia(); - var wp = leadingTrivia.FirstOrDefault(w => w.Kind() == SyntaxKind.WhitespaceTrivia); + var wp = leadingTrivia.FirstOrDefault(w => w.IsKind(SyntaxKind.WhitespaceTrivia)); node = builder?.Invoke(node, wp); @@ -35,7 +35,7 @@ public static ClassDeclarationSyntax Apply(ClassDeclarationSyntax node, Func w.Kind() == SyntaxKind.WhitespaceTrivia); + var wp = leadingTrivia.FirstOrDefault(w => w.IsKind(SyntaxKind.WhitespaceTrivia)); if (wp == default) { wp = SyntaxFactory.Whitespace(String.Empty); @@ -58,7 +58,7 @@ public static EnumDeclarationSyntax Apply(EnumDeclarationSyntax node, Func w.Kind() == SyntaxKind.WhitespaceTrivia); + var wp = leadingTrivia.FirstOrDefault(w => w.IsKind(SyntaxKind.WhitespaceTrivia)); node = builder?.Invoke(node, wp); @@ -77,7 +77,7 @@ public static EnumMemberDeclarationSyntax Apply(EnumMemberDeclarationSyntax node node = node.WithoutLeadingTrivia(); node = node.WithoutTrailingTrivia(); - var wp = leadingTrivia.FirstOrDefault(w => w.Kind() == SyntaxKind.WhitespaceTrivia); + var wp = leadingTrivia.FirstOrDefault(w => w.IsKind(SyntaxKind.WhitespaceTrivia)); node = builder?.Invoke(node, wp); diff --git a/visual-studio/ProtoAttributor/ProtoAttributor.csproj b/visual-studio/ProtoAttributor/ProtoAttributor.csproj index 54f3fa3..72b768b 100644 --- a/visual-studio/ProtoAttributor/ProtoAttributor.csproj +++ b/visual-studio/ProtoAttributor/ProtoAttributor.csproj @@ -1,15 +1,11 @@ - - VS2022 - VS2019 - - bin\$(VsTargetVersion)\$(Configuration)\ - obj\$(VsTargetVersion)\$(Configuration)\ + bin\$(Configuration)\ + obj\$(Configuration)\ - 16.0 + 17.0 $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) @@ -33,52 +29,29 @@ $(DevEnvDir)devenv.exe /rootsuffix Exp - - - - - v4.8 - ProtoAttributor2022 - - - - Designer - - - 4.8.0 - - - compile; build; native; contentfiles; analyzers; buildtransitive - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - - - - - v4.7.2 - ProtoAttributor2019 - - - - Designer - - - 3.8.0 - - - - - - + + v4.8 + ProtoAttributor2022 + + + + Designer + + + 4.8.0 + + + compile; build; native; contentfiles; analyzers; buildtransitive + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + true full false - TRACE;DEBUG prompt 4 @@ -86,7 +59,6 @@ pdbonly true - TRACE prompt 4 diff --git a/visual-studio/ProtoAttributorTestShell/ProtoAttributorTestShell.sln b/visual-studio/ProtoAttributorTestShell/ProtoAttributorTestShell.sln deleted file mode 100644 index 75f2823..0000000 --- a/visual-studio/ProtoAttributorTestShell/ProtoAttributorTestShell.sln +++ /dev/null @@ -1,25 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.30011.22 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtoAttributorTestShell", "ProtoAttributorTestShell\ProtoAttributorTestShell.csproj", "{A05E9BA1-3097-42CD-8291-EA30D3179FFE}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A05E9BA1-3097-42CD-8291-EA30D3179FFE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A05E9BA1-3097-42CD-8291-EA30D3179FFE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A05E9BA1-3097-42CD-8291-EA30D3179FFE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A05E9BA1-3097-42CD-8291-EA30D3179FFE}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {9048D1DE-16B4-4F22-B86E-32B077847C49} - EndGlobalSection -EndGlobal diff --git a/visual-studio/ProtoAttributorTestShell/ProtoAttributorTestShell/Models/AccountViewModels.cs b/visual-studio/ProtoAttributorTestShell/ProtoAttributorTestShell/Models/AccountViewModels.cs deleted file mode 100644 index da2616a..0000000 --- a/visual-studio/ProtoAttributorTestShell/ProtoAttributorTestShell/Models/AccountViewModels.cs +++ /dev/null @@ -1,120 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; - -namespace WebApplication1.Models -{ - // Models returned by AccountController actions. - public class ExternalLoginConfirmationViewModel - { - [Required] - [Display(Name = "Email")] - public string Email { get; set; } - - [Display(Name = "Hometown")] - public string Hometown { get; set; } - } - - public class ExternalLoginListViewModel - { - public string ReturnUrl { get; set; } - } - - public class SendCodeViewModel - { - public string SelectedProvider { get; set; } - public ICollection Providers { get; set; } - public string ReturnUrl { get; set; } - public bool RememberMe { get; set; } - } - - public class VerifyCodeViewModel - { - [Required] - public string Provider { get; set; } - - [Required] - [Display(Name = "Code")] - public string Code { get; set; } - public string ReturnUrl { get; set; } - - [Display(Name = "Remember this browser?")] - public bool RememberBrowser { get; set; } - - public bool RememberMe { get; set; } - } - - public class ForgotViewModel - { - [Required] - [Display(Name = "Email")] - public string Email { get; set; } - } - - public class LoginViewModel - { - [Required] - [Display(Name = "Email")] - [EmailAddress] - public string Email { get; set; } - - [Required] - [DataType(DataType.Password)] - [Display(Name = "Password")] - public string Password { get; set; } - - [Display(Name = "Remember me?")] - public bool RememberMe { get; set; } - } - - public class RegisterViewModel - { - [Required] - [EmailAddress] - [Display(Name = "Email")] - public string Email { get; set; } - - [Required] - [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)] - [DataType(DataType.Password)] - [Display(Name = "Password")] - public string Password { get; set; } - - [DataType(DataType.Password)] - [Display(Name = "Confirm password")] - [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")] - public string ConfirmPassword { get; set; } - - [Display(Name = "Hometown")] - public string Hometown { get; set; } - } - - public class ResetPasswordViewModel - { - [Required] - [EmailAddress] - [Display(Name = "Email")] - public string Email { get; set; } - - [Required] - [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)] - [DataType(DataType.Password)] - [Display(Name = "Password")] - public string Password { get; set; } - - [DataType(DataType.Password)] - [Display(Name = "Confirm password")] - [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")] - public string ConfirmPassword { get; set; } - - public string Code { get; set; } - } - - public class ForgotPasswordViewModel - { - [Required] - [EmailAddress] - [Display(Name = "Email")] - public string Email { get; set; } - } -} diff --git a/visual-studio/ProtoAttributorTestShell/ProtoAttributorTestShell/Models/IdentityModels.cs b/visual-studio/ProtoAttributorTestShell/ProtoAttributorTestShell/Models/IdentityModels.cs deleted file mode 100644 index 4a52fa6..0000000 --- a/visual-studio/ProtoAttributorTestShell/ProtoAttributorTestShell/Models/IdentityModels.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Data.Entity; -using System.Security.Claims; -using System.Threading.Tasks; -using Microsoft.AspNet.Identity; -using Microsoft.AspNet.Identity.EntityFramework; - -namespace WebApplication1.Models -{ - // You can add profile data for the user by adding more properties to your ApplicationUser class, please visit https://go.microsoft.com/fwlink/?LinkID=317594 to learn more. - public class ApplicationUser : IdentityUser - { - public string Hometown { get; set; } - - public async Task GenerateUserIdentityAsync(UserManager manager) - { - // Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType - var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie); - // Add custom user claims here - return userIdentity; - } - } - - public class ApplicationDbContext : IdentityDbContext - { - public ApplicationDbContext() - : base("DefaultConnection", throwIfV1Schema: false) - { - } - - public static ApplicationDbContext Create() - { - return new ApplicationDbContext(); - } - } -} diff --git a/visual-studio/ProtoAttributorTestShell/ProtoAttributorTestShell/Models/ManageViewModels.cs b/visual-studio/ProtoAttributorTestShell/ProtoAttributorTestShell/Models/ManageViewModels.cs deleted file mode 100644 index d0b0ebe..0000000 --- a/visual-studio/ProtoAttributorTestShell/ProtoAttributorTestShell/Models/ManageViewModels.cs +++ /dev/null @@ -1,86 +0,0 @@ -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; -using Microsoft.AspNet.Identity; -using Microsoft.Owin.Security; - -namespace WebApplication1.Models -{ - public class IndexViewModel - { - public bool HasPassword { get; set; } - public IList Logins { get; set; } - public string PhoneNumber { get; set; } - public bool TwoFactor { get; set; } - public bool BrowserRemembered { get; set; } - } - - public class ManageLoginsViewModel - { - public IList CurrentLogins { get; set; } - public IList OtherLogins { get; set; } - } - - public class FactorViewModel - { - public string Purpose { get; set; } - } - - public class SetPasswordViewModel - { - [Required] - [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)] - [DataType(DataType.Password)] - [Display(Name = "New password")] - public string NewPassword { get; set; } - - [DataType(DataType.Password)] - [Display(Name = "Confirm new password")] - [Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match.")] - public string ConfirmPassword { get; set; } - } - - public class ChangePasswordViewModel - { - [Required] - [DataType(DataType.Password)] - [Display(Name = "Current password")] - public string OldPassword { get; set; } - - [Required] - [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)] - [DataType(DataType.Password)] - [Display(Name = "New password")] - public string NewPassword { get; set; } - - [DataType(DataType.Password)] - [Display(Name = "Confirm new password")] - [Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match.")] - public string ConfirmPassword { get; set; } - } - - public class AddPhoneNumberViewModel - { - [Required] - [Phone] - [Display(Name = "Phone Number")] - public string Number { get; set; } - } - - public class VerifyPhoneNumberViewModel - { - [Required] - [Display(Name = "Code")] - public string Code { get; set; } - - [Required] - [Phone] - [Display(Name = "Phone Number")] - public string PhoneNumber { get; set; } - } - - public class ConfigureTwoFactorViewModel - { - public string SelectedProvider { get; set; } - public ICollection Providers { get; set; } - } -} diff --git a/visual-studio/ProtoAttributorTestShell/ProtoAttributorTestShell/Models/MeViewModels.cs b/visual-studio/ProtoAttributorTestShell/ProtoAttributorTestShell/Models/MeViewModels.cs deleted file mode 100644 index 5f1b670..0000000 --- a/visual-studio/ProtoAttributorTestShell/ProtoAttributorTestShell/Models/MeViewModels.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; - -namespace WebApplication1.Models -{ - public enum TestEnum - { - One, - Two, - // comment - Three, - /// - /// Test Sumary - /// - Four, - } - public class GetViewModel - { - public string Hometown { get; set; } - public string Hometown1 { get; set; } - public string Hometown2 { get; set; } - public string Hometown3 { get; set; } - public string Hometown4 { get; set; } - public string Hometown5 { get; set; } - public string Hometown6 { get; set; } - public string Hometown7 { get; set; } - public string Hometown8 { get; set; } - public string Hometown9 { get; set; } - public string Hometown11 { get; set; } - public string Hometown22 { get; set; } - - public string Hometown33 { get; set; } - public string Hometown44 { get; set; } - - public string Hometown55 { get; set; } - - public string Hometown66 { get; set; } - public string Hometown77 { get; set; } - public string Hometown88 { get; set; } - public string Hometown99 { get; set; } - - } -} diff --git a/visual-studio/ProtoAttributorTestShell/ProtoAttributorTestShell/Properties/AssemblyInfo.cs b/visual-studio/ProtoAttributorTestShell/ProtoAttributorTestShell/Properties/AssemblyInfo.cs deleted file mode 100644 index 98f43d4..0000000 --- a/visual-studio/ProtoAttributorTestShell/ProtoAttributorTestShell/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("WebApplication1")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("WebApplication1")] -[assembly: AssemblyCopyright("Copyright © 2020")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("88fc3eff-0b01-421f-81c3-15862bd4db0b")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/visual-studio/ProtoAttributorTestShell/ProtoAttributorTestShell/ProtoAttributorTestShell.csproj b/visual-studio/ProtoAttributorTestShell/ProtoAttributorTestShell/ProtoAttributorTestShell.csproj deleted file mode 100644 index 02c6287..0000000 --- a/visual-studio/ProtoAttributorTestShell/ProtoAttributorTestShell/ProtoAttributorTestShell.csproj +++ /dev/null @@ -1,254 +0,0 @@ - - - - - - Debug - AnyCPU - - - 2.0 - {A05E9BA1-3097-42CD-8291-EA30D3179FFE} - {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} - Library - Properties - WebApplication1 - WebApplication1 - v4.7.2 - false - true - - 44368 - - - - - - - - - true - full - false - bin\ - DEBUG;TRACE - prompt - 4 - - - true - pdbonly - true - bin\ - TRACE - prompt - 4 - - - - True - ..\packages\Antlr.3.5.0.2\lib\Antlr3.Runtime.dll - - - True - ..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.dll - - - True - ..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.SqlServer.dll - - - ..\packages\Microsoft.AspNet.Identity.Core.2.2.3\lib\net45\Microsoft.AspNet.Identity.Core.dll - - - ..\packages\Microsoft.AspNet.Identity.EntityFramework.2.2.3\lib\net45\Microsoft.AspNet.Identity.EntityFramework.dll - - - ..\packages\Microsoft.AspNet.Identity.Owin.2.2.3\lib\net45\Microsoft.AspNet.Identity.Owin.dll - - - - True - ..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll - - - ..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll - - - ..\packages\Owin.1.0\lib\net40\Owin.dll - - - ..\packages\protobuf-net.3.0.73\lib\net461\protobuf-net.dll - - - ..\packages\protobuf-net.Core.3.0.73\lib\net461\protobuf-net.Core.dll - - - - ..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll - - - ..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll - - - - - - - - - - ..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll - - - - True - ..\packages\Microsoft.AspNet.WebApi.Client.5.2.7\lib\net45\System.Net.Http.Formatting.dll - - - - - ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.3\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - - - - - - - - - - - - - True - ..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.Helpers.dll - - - True - ..\packages\Microsoft.AspNet.WebApi.Core.5.2.7\lib\net45\System.Web.Http.dll - - - True - ..\packages\Microsoft.AspNet.WebApi.Owin.5.2.7\lib\net45\System.Web.Http.Owin.dll - - - True - ..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.7\lib\net45\System.Web.Http.WebHost.dll - - - True - ..\packages\Microsoft.AspNet.Mvc.5.2.7\lib\net45\System.Web.Mvc.dll - - - True - ..\packages\Microsoft.AspNet.Web.Optimization.1.1.3\lib\net40\System.Web.Optimization.dll - - - True - ..\packages\Microsoft.AspNet.Razor.3.2.7\lib\net45\System.Web.Razor.dll - - - - - True - ..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.dll - - - True - ..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Deployment.dll - - - True - ..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Razor.dll - - - True - ..\packages\WebGrease.1.6.0\lib\WebGrease.dll - - - - - ..\packages\Microsoft.Owin.4.0.1\lib\net45\Microsoft.Owin.dll - - - ..\packages\Microsoft.Owin.Host.SystemWeb.4.0.1\lib\net45\Microsoft.Owin.Host.SystemWeb.dll - - - ..\packages\Microsoft.Owin.Security.4.0.1\lib\net45\Microsoft.Owin.Security.dll - - - ..\packages\Microsoft.Owin.Security.Facebook.4.0.1\lib\net45\Microsoft.Owin.Security.Facebook.dll - - - ..\packages\Microsoft.Owin.Security.Cookies.4.0.1\lib\net45\Microsoft.Owin.Security.Cookies.dll - - - ..\packages\Microsoft.Owin.Security.Google.4.0.1\lib\net45\Microsoft.Owin.Security.Google.dll - - - ..\packages\Microsoft.Owin.Security.Twitter.4.0.1\lib\net45\Microsoft.Owin.Security.Twitter.dll - - - ..\packages\Microsoft.Owin.Security.MicrosoftAccount.4.0.1\lib\net45\Microsoft.Owin.Security.MicrosoftAccount.dll - - - ..\packages\Microsoft.Owin.Security.OAuth.4.0.1\lib\net45\Microsoft.Owin.Security.OAuth.dll - - - ..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll - - - - - - - - - - - - - 10.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - - - - - - - - - - True - True - 58697 - / - https://localhost:44368/ - False - False - - - False - - - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - \ No newline at end of file diff --git a/visual-studio/ProtoAttributorTestShell/ProtoAttributorTestShell/Results/ChallengeResult.cs b/visual-studio/ProtoAttributorTestShell/ProtoAttributorTestShell/Results/ChallengeResult.cs deleted file mode 100644 index 2cc0504..0000000 --- a/visual-studio/ProtoAttributorTestShell/ProtoAttributorTestShell/Results/ChallengeResult.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net; -using System.Net.Http; -using System.Threading; -using System.Threading.Tasks; -using System.Web.Http; - -namespace WebApplication1.Results -{ - public class ChallengeResult : IHttpActionResult - { - public ChallengeResult(string loginProvider, ApiController controller) - { - LoginProvider = loginProvider; - Request = controller.Request; - } - - public string LoginProvider { get; set; } - public HttpRequestMessage Request { get; set; } - - public Task ExecuteAsync(CancellationToken cancellationToken) - { - Request.GetOwinContext().Authentication.Challenge(LoginProvider); - - HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.Unauthorized); - response.RequestMessage = Request; - return Task.FromResult(response); - } - } -} diff --git a/vscode/.vscode/extensions.json b/vscode/.vscode/extensions.json new file mode 100644 index 0000000..db70f88 --- /dev/null +++ b/vscode/.vscode/extensions.json @@ -0,0 +1,8 @@ +{ + // See http://go.microsoft.com/fwlink/?LinkId=827846 + // for the documentation about the extensions.json format + "recommendations": [ + "dbaeumer.vscode-eslint", + "ms-vscode.extension-test-runner" + ] +} diff --git a/vscode/.vscode/launch.json b/vscode/.vscode/launch.json new file mode 100644 index 0000000..b25c5de --- /dev/null +++ b/vscode/.vscode/launch.json @@ -0,0 +1,33 @@ +// A launch configuration that compiles the extension and then opens it inside a new window +// Use IntelliSense to learn about possible attributes. +// Hover to view descriptions of existing attributes. +// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Run Extension", + "type": "extensionHost", + "request": "launch", + "args": [ + "--extensionDevelopmentPath=${workspaceFolder}" + ], + "outFiles": [ + "${workspaceFolder}/out/**/*.js" + ], + "preLaunchTask": "${defaultBuildTask}" + }, + { + "name": "Debug Jest Tests", + "type": "node", + "request": "launch", + "runtimeArgs": [ + "--inspect-brk", + "${workspaceRoot}/node_modules/jest/bin/jest.js", + "--runInBand" + ], + "console": "integratedTerminal", + "internalConsoleOptions": "openOnFirstSessionStart" + } + ] +} diff --git a/vscode/.vscode/settings.json b/vscode/.vscode/settings.json new file mode 100644 index 0000000..fbf4506 --- /dev/null +++ b/vscode/.vscode/settings.json @@ -0,0 +1,16 @@ +// Place your settings in this file to overwrite default and user settings. +{ + "files.exclude": { + "out": false // set this to true to hide the "out" folder with the compiled JS files + }, + "search.exclude": { + "out": true // set this to false to include "out" folder in search results + }, + // Turn off tsc task auto detection since we have the necessary tasks as npm scripts + "typescript.tsc.autoDetect": "off", + "cSpell.words": [ + "Lamba", + "Lamda", + "Linq" + ] +} diff --git a/vscode/.vscode/tasks.json b/vscode/.vscode/tasks.json new file mode 100644 index 0000000..3b17e53 --- /dev/null +++ b/vscode/.vscode/tasks.json @@ -0,0 +1,20 @@ +// See https://go.microsoft.com/fwlink/?LinkId=733558 +// for the documentation about the tasks.json format +{ + "version": "2.0.0", + "tasks": [ + { + "type": "npm", + "script": "watch", + "problemMatcher": "$tsc-watch", + "isBackground": true, + "presentation": { + "reveal": "never" + }, + "group": { + "kind": "build", + "isDefault": true + } + } + ] +}