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
+ }
+ }
+ ]
+}