diff --git a/.gitignore b/.gitignore
index b98e233fecbbd8e472ea2b47b244a2476b0cfe88..bd2478868093acc010a5224d8e3104fddd09c9b6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -363,6 +363,5 @@ MigrationBackup/
# Fody - auto-generated XML schema
FodyWeavers.xsd
-/SYS.FormUI/images
/pdmanspace
*.keep
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000000000000000000000000000000000000..6511dd1868f68711f3b47e1131067db44f534672
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "topsky-hotel-manager-system-web-api"]
+ path = topsky-hotel-manager-system-web-api
+ url = https://gitee.com/java-and-net/topsky-hotel-manager-system-web-api.git
diff --git a/EOM.Client.TopSkyHotelManagerSystem.sln b/EOM.Client.TopSkyHotelManagerSystem.sln
index b84723af9dfc3e9fac7f3aa3667587134b6b8381..813fc0fb4d2220c2c690fd99f9b6390b6813a23e 100644
--- a/EOM.Client.TopSkyHotelManagerSystem.sln
+++ b/EOM.Client.TopSkyHotelManagerSystem.sln
@@ -5,11 +5,21 @@ VisualStudioVersion = 17.4.33213.308
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SYS.FormUI", "SYS.FormUI\SYS.FormUI.csproj", "{8854DCB7-F2D7-4276-8D10-C7A124436145}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SYS.Core", "SYS.Core\SYS.Core.csproj", "{CD039D0F-BD50-4FBF-B9CD-CDFAB25C7DFA}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SYS.Common", "SYS.Common\SYS.Common.csproj", "{65501AF6-C629-448A-847E-1BCD60665865}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SYS.Library", "SYS.Library\SYS.Library.csproj", "{BCEA3E3C-E6D2-4210-95DD-42B461D5F22A}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Api", "Api", "{6A3E4936-8B95-49E0-842B-E002C0E024CE}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SYS.Common", "SYS.Common\SYS.Common.csproj", "{65501AF6-C629-448A-847E-1BCD60665865}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Client", "Client", "{3B8902EC-CAB9-406A-AAF7-24DABD885AC0}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EOM.TSHotelManager.Application", "topsky-hotel-manager-system-web-api\EOM.TSHotelManager.Application\EOM.TSHotelManager.Application.csproj", "{B55975AB-2C89-4C01-B107-D87FCA21A5E3}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EOM.TSHotelManager.EntityFramework", "topsky-hotel-manager-system-web-api\EOM.TSHotelManager.EntityFramework\EOM.TSHotelManager.EntityFramework.csproj", "{8F5CF88A-1111-44CC-AFFA-4637EA10E191}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EOM.TSHotelManager.WebApi", "topsky-hotel-manager-system-web-api\EOM.TSHotelManager.WebApi\EOM.TSHotelManager.WebApi.csproj", "{566D7064-EA90-45C1-93B7-F512BBAD7BA1}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Library", "topsky-hotel-manager-system-web-api\Library\Library.csproj", "{5C7B9A47-90AD-4300-BF7F-64D9EBA9705C}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EOM.TSHotelManager.Common.Core", "topsky-hotel-manager-system-web-api\EOM.TSHotelManager.Common.Core\EOM.TSHotelManager.Common.Core.csproj", "{48B3F864-88D2-4BD1-A766-B9EBF342AED1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -21,22 +31,43 @@ Global
{8854DCB7-F2D7-4276-8D10-C7A124436145}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8854DCB7-F2D7-4276-8D10-C7A124436145}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8854DCB7-F2D7-4276-8D10-C7A124436145}.Release|Any CPU.Build.0 = Release|Any CPU
- {CD039D0F-BD50-4FBF-B9CD-CDFAB25C7DFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {CD039D0F-BD50-4FBF-B9CD-CDFAB25C7DFA}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {CD039D0F-BD50-4FBF-B9CD-CDFAB25C7DFA}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {CD039D0F-BD50-4FBF-B9CD-CDFAB25C7DFA}.Release|Any CPU.Build.0 = Release|Any CPU
- {BCEA3E3C-E6D2-4210-95DD-42B461D5F22A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {BCEA3E3C-E6D2-4210-95DD-42B461D5F22A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {BCEA3E3C-E6D2-4210-95DD-42B461D5F22A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {BCEA3E3C-E6D2-4210-95DD-42B461D5F22A}.Release|Any CPU.Build.0 = Release|Any CPU
{65501AF6-C629-448A-847E-1BCD60665865}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{65501AF6-C629-448A-847E-1BCD60665865}.Debug|Any CPU.Build.0 = Debug|Any CPU
{65501AF6-C629-448A-847E-1BCD60665865}.Release|Any CPU.ActiveCfg = Release|Any CPU
{65501AF6-C629-448A-847E-1BCD60665865}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B55975AB-2C89-4C01-B107-D87FCA21A5E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B55975AB-2C89-4C01-B107-D87FCA21A5E3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B55975AB-2C89-4C01-B107-D87FCA21A5E3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B55975AB-2C89-4C01-B107-D87FCA21A5E3}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8F5CF88A-1111-44CC-AFFA-4637EA10E191}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8F5CF88A-1111-44CC-AFFA-4637EA10E191}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8F5CF88A-1111-44CC-AFFA-4637EA10E191}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8F5CF88A-1111-44CC-AFFA-4637EA10E191}.Release|Any CPU.Build.0 = Release|Any CPU
+ {566D7064-EA90-45C1-93B7-F512BBAD7BA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {566D7064-EA90-45C1-93B7-F512BBAD7BA1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {566D7064-EA90-45C1-93B7-F512BBAD7BA1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {566D7064-EA90-45C1-93B7-F512BBAD7BA1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {5C7B9A47-90AD-4300-BF7F-64D9EBA9705C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5C7B9A47-90AD-4300-BF7F-64D9EBA9705C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5C7B9A47-90AD-4300-BF7F-64D9EBA9705C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5C7B9A47-90AD-4300-BF7F-64D9EBA9705C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {48B3F864-88D2-4BD1-A766-B9EBF342AED1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {48B3F864-88D2-4BD1-A766-B9EBF342AED1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {48B3F864-88D2-4BD1-A766-B9EBF342AED1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {48B3F864-88D2-4BD1-A766-B9EBF342AED1}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {8854DCB7-F2D7-4276-8D10-C7A124436145} = {3B8902EC-CAB9-406A-AAF7-24DABD885AC0}
+ {65501AF6-C629-448A-847E-1BCD60665865} = {3B8902EC-CAB9-406A-AAF7-24DABD885AC0}
+ {B55975AB-2C89-4C01-B107-D87FCA21A5E3} = {6A3E4936-8B95-49E0-842B-E002C0E024CE}
+ {8F5CF88A-1111-44CC-AFFA-4637EA10E191} = {6A3E4936-8B95-49E0-842B-E002C0E024CE}
+ {566D7064-EA90-45C1-93B7-F512BBAD7BA1} = {6A3E4936-8B95-49E0-842B-E002C0E024CE}
+ {5C7B9A47-90AD-4300-BF7F-64D9EBA9705C} = {6A3E4936-8B95-49E0-842B-E002C0E024CE}
+ {48B3F864-88D2-4BD1-A766-B9EBF342AED1} = {6A3E4936-8B95-49E0-842B-E002C0E024CE}
+ EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {B93ABE6D-89AD-45B3-94FB-65BD98597CC6}
EndGlobalSection
diff --git a/README.md b/README.md
index d7577997335a65093c09ce89ef7324cf1088cf64..6574515b2742bdd8e8b9b26be70e681791c2b7a7 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,11 @@