Updated solution to include chapters 22 and 23
MODIFY
EssentialCSharp.sln
EssentialCSharp.sln
@@ -108,6 +108,14 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Chapter21.Tests", "src\Chap
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Chapter11.Tests", "src\Chapter11.Tests\Chapter11.Tests.csproj", "{FC54D6EE-7E91-4FE7-8C40-EFAE83633505}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Chapter22", "src\Chapter22\Chapter22.csproj", "{70C90304-30C5-4051-9340-B680AEE6EA64}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Chapter22.Tests", "src\Chapter22.Tests\Chapter22.Tests.csproj", "{6F919416-A466-4710-A73A-BACBFA77B8E7}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Chapter23", "src\Chapter23\Chapter23.csproj", "{93998CC5-002C-4796-92BF-CEB99DFA619C}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Chapter23.Tests", "src\Chapter23.Tests\Chapter23.Tests.csproj", "{21342ABB-E09B-459F-8405-33743DC90EF6}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -622,6 +630,54 @@ Global
{FC54D6EE-7E91-4FE7-8C40-EFAE83633505}.Release|x64.Build.0 = Release|Any CPU
{FC54D6EE-7E91-4FE7-8C40-EFAE83633505}.Release|x86.ActiveCfg = Release|Any CPU
{FC54D6EE-7E91-4FE7-8C40-EFAE83633505}.Release|x86.Build.0 = Release|Any CPU
+ {70C90304-30C5-4051-9340-B680AEE6EA64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {70C90304-30C5-4051-9340-B680AEE6EA64}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {70C90304-30C5-4051-9340-B680AEE6EA64}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {70C90304-30C5-4051-9340-B680AEE6EA64}.Debug|x64.Build.0 = Debug|Any CPU
+ {70C90304-30C5-4051-9340-B680AEE6EA64}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {70C90304-30C5-4051-9340-B680AEE6EA64}.Debug|x86.Build.0 = Debug|Any CPU
+ {70C90304-30C5-4051-9340-B680AEE6EA64}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {70C90304-30C5-4051-9340-B680AEE6EA64}.Release|Any CPU.Build.0 = Release|Any CPU
+ {70C90304-30C5-4051-9340-B680AEE6EA64}.Release|x64.ActiveCfg = Release|Any CPU
+ {70C90304-30C5-4051-9340-B680AEE6EA64}.Release|x64.Build.0 = Release|Any CPU
+ {70C90304-30C5-4051-9340-B680AEE6EA64}.Release|x86.ActiveCfg = Release|Any CPU
+ {70C90304-30C5-4051-9340-B680AEE6EA64}.Release|x86.Build.0 = Release|Any CPU
+ {6F919416-A466-4710-A73A-BACBFA77B8E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6F919416-A466-4710-A73A-BACBFA77B8E7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6F919416-A466-4710-A73A-BACBFA77B8E7}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {6F919416-A466-4710-A73A-BACBFA77B8E7}.Debug|x64.Build.0 = Debug|Any CPU
+ {6F919416-A466-4710-A73A-BACBFA77B8E7}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {6F919416-A466-4710-A73A-BACBFA77B8E7}.Debug|x86.Build.0 = Debug|Any CPU
+ {6F919416-A466-4710-A73A-BACBFA77B8E7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6F919416-A466-4710-A73A-BACBFA77B8E7}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6F919416-A466-4710-A73A-BACBFA77B8E7}.Release|x64.ActiveCfg = Release|Any CPU
+ {6F919416-A466-4710-A73A-BACBFA77B8E7}.Release|x64.Build.0 = Release|Any CPU
+ {6F919416-A466-4710-A73A-BACBFA77B8E7}.Release|x86.ActiveCfg = Release|Any CPU
+ {6F919416-A466-4710-A73A-BACBFA77B8E7}.Release|x86.Build.0 = Release|Any CPU
+ {93998CC5-002C-4796-92BF-CEB99DFA619C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {93998CC5-002C-4796-92BF-CEB99DFA619C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {93998CC5-002C-4796-92BF-CEB99DFA619C}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {93998CC5-002C-4796-92BF-CEB99DFA619C}.Debug|x64.Build.0 = Debug|Any CPU
+ {93998CC5-002C-4796-92BF-CEB99DFA619C}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {93998CC5-002C-4796-92BF-CEB99DFA619C}.Debug|x86.Build.0 = Debug|Any CPU
+ {93998CC5-002C-4796-92BF-CEB99DFA619C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {93998CC5-002C-4796-92BF-CEB99DFA619C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {93998CC5-002C-4796-92BF-CEB99DFA619C}.Release|x64.ActiveCfg = Release|Any CPU
+ {93998CC5-002C-4796-92BF-CEB99DFA619C}.Release|x64.Build.0 = Release|Any CPU
+ {93998CC5-002C-4796-92BF-CEB99DFA619C}.Release|x86.ActiveCfg = Release|Any CPU
+ {93998CC5-002C-4796-92BF-CEB99DFA619C}.Release|x86.Build.0 = Release|Any CPU
+ {21342ABB-E09B-459F-8405-33743DC90EF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {21342ABB-E09B-459F-8405-33743DC90EF6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {21342ABB-E09B-459F-8405-33743DC90EF6}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {21342ABB-E09B-459F-8405-33743DC90EF6}.Debug|x64.Build.0 = Debug|Any CPU
+ {21342ABB-E09B-459F-8405-33743DC90EF6}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {21342ABB-E09B-459F-8405-33743DC90EF6}.Debug|x86.Build.0 = Debug|Any CPU
+ {21342ABB-E09B-459F-8405-33743DC90EF6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {21342ABB-E09B-459F-8405-33743DC90EF6}.Release|Any CPU.Build.0 = Release|Any CPU
+ {21342ABB-E09B-459F-8405-33743DC90EF6}.Release|x64.ActiveCfg = Release|Any CPU
+ {21342ABB-E09B-459F-8405-33743DC90EF6}.Release|x64.Build.0 = Release|Any CPU
+ {21342ABB-E09B-459F-8405-33743DC90EF6}.Release|x86.ActiveCfg = Release|Any CPU
+ {21342ABB-E09B-459F-8405-33743DC90EF6}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

RENAME
src/Chapter19/Cryptographer.cs
src/Chapter20/Cryptographer.cs
MODIFY
src/Chapter22.Tests/Listing22.01.UnsychronizedState.cs
src/Chapter22.Tests/Listing22.01.UnsychronizedState.cs
@@ -4,7 +4,7 @@ using System.Threading;
using System.Threading.Tasks;
using System.Text.RegularExpressions;
-namespace AddisonWesley.Michaelis.EssentialCSharp.Chapter22.Listing22_01
+namespace AddisonWesley.Michaelis.EssentialCSharp.Chapter22.Listing22_01.Tests
{
[TestClass]
public class ProgramTests

MODIFY
src/Chapter22.Tests/Listing22.02.UnsychronizedLocalVariables.cs
src/Chapter22.Tests/Listing22.02.UnsychronizedLocalVariables.cs
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
-using static AddisonWesley.Michaelis.EssentialCSharp.Chapter20.Listing20_01.Tests.ProgramTests;
+using static AddisonWesley.Michaelis.EssentialCSharp.Chapter22.Listing22_01.Tests.ProgramTests;
namespace AddisonWesley.Michaelis.EssentialCSharp.Chapter22.Listing22_02
{

MODIFY
src/Chapter22.Tests/Listing22.03.SynchronizingWithMonitor.cs
src/Chapter22.Tests/Listing22.03.SynchronizingWithMonitor.cs
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
-using static AddisonWesley.Michaelis.EssentialCSharp.Chapter20.Listing20_01.Tests.ProgramTests;
+using static AddisonWesley.Michaelis.EssentialCSharp.Chapter22.Listing22_01.Tests.ProgramTests;
namespace AddisonWesley.Michaelis.EssentialCSharp.Chapter22.Listing22_03
{

MODIFY
src/Chapter22.Tests/Listing22.04.SynchronizingWithLockKeyword.cs
src/Chapter22.Tests/Listing22.04.SynchronizingWithLockKeyword.cs
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
-using static AddisonWesley.Michaelis.EssentialCSharp.Chapter20.Listing20_01.Tests.ProgramTests;
+using static AddisonWesley.Michaelis.EssentialCSharp.Chapter22.Listing22_01.Tests.ProgramTests;
namespace AddisonWesley.Michaelis.EssentialCSharp.Chapter22.Listing22_04
{

MODIFY
src/Chapter22.Tests/Listing22.05.AsyncMain.cs
src/Chapter22.Tests/Listing22.05.AsyncMain.cs
using System;
using System.Threading.Tasks;
using Microsoft.VisualStudio.TestTools.UnitTesting;
-using static AddisonWesley.Michaelis.EssentialCSharp.Chapter20.Listing20_01.Tests.ProgramTests;
+using static AddisonWesley.Michaelis.EssentialCSharp.Chapter22.Listing22_01.Tests.ProgramTests;
namespace AddisonWesley.Michaelis.EssentialCSharp.Chapter22.Listing22_05
{

Updated solution to include chapters 22 and 23