Просмотр исходного кода

删除一些暂时不用的程序集

tanghai 11 лет назад
Родитель
Сommit
128d78d2c6
71 измененных файлов с 3 добавлено и 4166 удалено
  1. 0 88
      CSharp/App/BossBase/BossBase.csproj
  2. 0 7
      CSharp/App/BossBase/CommonDefines.cs
  3. 0 11
      CSharp/App/BossBase/IMessageChannel.cs
  4. 0 8
      CSharp/App/BossBase/LoginOKEvent.cs
  5. 0 313
      CSharp/App/BossBase/Messages.cs
  6. 0 10
      CSharp/App/BossBase/Packages.config
  7. 0 39
      CSharp/App/BossBase/Properties/AssemblyInfo.cs
  8. 0 8
      CSharp/App/BossBase/ReLoginEvent.cs
  9. 0 11
      CSharp/App/BossBase/app.config
  10. 0 58
      CSharp/App/BossClient/BossClient.cs
  11. 0 80
      CSharp/App/BossClient/BossClient.csproj
  12. 0 25
      CSharp/App/BossClient/BossException.cs
  13. 0 70
      CSharp/App/BossClient/ENetChannel.cs
  14. 0 93
      CSharp/App/BossClient/GateSession.cs
  15. 0 39
      CSharp/App/BossClient/Properties/AssemblyInfo.cs
  16. 0 189
      CSharp/App/BossClient/RealmSession.cs
  17. 0 287
      CSharp/App/BossClient/SRP6Client.cs
  18. 0 88
      CSharp/App/BossClient/TcpChannel.cs
  19. 0 11
      CSharp/App/BossClient/app.config
  20. 0 53
      CSharp/App/BossCommand/ABossCommand.cs
  21. 0 21
      CSharp/App/BossCommand/App.config
  22. 0 22
      CSharp/App/BossCommand/BCCommand.cs
  23. 0 25
      CSharp/App/BossCommand/BCForbidLogin.cs
  24. 0 25
      CSharp/App/BossCommand/BCForbiddenCharacter.cs
  25. 0 50
      CSharp/App/BossCommand/BCGetCharacterInfo.cs
  26. 0 18
      CSharp/App/BossCommand/BCReloadWorld.cs
  27. 0 26
      CSharp/App/BossCommand/BCSendMail.cs
  28. 0 19
      CSharp/App/BossCommand/BCServerInfo.cs
  29. 0 77
      CSharp/App/BossCommand/BossCommand.csproj
  30. 0 39
      CSharp/App/BossCommand/Properties/AssemblyInfo.cs
  31. 0 6
      CSharp/App/Editor/Bootstrapper.cs
  32. 0 12
      CSharp/App/Editor/Editor.csproj
  33. 0 154
      CSharp/App/Modules/Login/Login.csproj
  34. 0 13
      CSharp/App/Modules/Login/LoginModule.cs
  35. 0 33
      CSharp/App/Modules/Login/LoginView.xaml
  36. 0 36
      CSharp/App/Modules/Login/LoginView.xaml.cs
  37. 0 122
      CSharp/App/Modules/Login/LoginViewModel.cs
  38. 0 11
      CSharp/App/Modules/Login/Packages.config
  39. 0 11
      CSharp/App/Modules/Login/app.config
  40. 0 11
      CSharp/App/Modules/Robot/App.config
  41. 0 8
      CSharp/App/Modules/Robot/ComboBoxForbiddenType.cs
  42. 0 28
      CSharp/App/Modules/Robot/NumValidation.cs
  43. 0 12
      CSharp/App/Modules/Robot/Packages.config
  44. 0 6
      CSharp/App/Modules/Robot/Robot.cs
  45. 0 157
      CSharp/App/Modules/Robot/Robot.csproj
  46. 0 13
      CSharp/App/Modules/Robot/RobotModule.cs
  47. 0 173
      CSharp/App/Modules/Robot/RobotView.xaml
  48. 0 186
      CSharp/App/Modules/Robot/RobotView.xaml.cs
  49. 0 434
      CSharp/App/Modules/Robot/RobotViewModel.cs
  50. 0 24
      CSharp/App/Modules/Robot/ServerViewModel.cs
  51. 0 1
      CSharp/App/Modules/Tree/AllTreeViewModel.cs
  52. 3 1
      CSharp/App/Modules/Tree/TreeViewModel.cs
  53. 0 11
      CSharp/App/Modules/WCFClient/App.config
  54. 0 10
      CSharp/App/Modules/WCFClient/Packages.config
  55. 0 53
      CSharp/App/Modules/WCFClient/Properties/AssemblyInfo.cs
  56. 0 129
      CSharp/App/Modules/WCFClient/WCFClient.csproj
  57. 0 13
      CSharp/App/Modules/WCFClient/WCFClientModule.cs
  58. 0 12
      CSharp/App/Modules/WCFClient/WCFClientView.xaml
  59. 0 22
      CSharp/App/Modules/WCFClient/WCFClientView.xaml.cs
  60. 0 10
      CSharp/App/Modules/WCFClient/WCFClientViewModel.cs
  61. 0 120
      CSharp/CSharp.sln
  62. 0 69
      CSharp/Game/BehaviorTreeTest/BehaviorTreeFactoryTest.cs
  63. 0 103
      CSharp/Game/BehaviorTreeTest/BehaviorTreeTest.csproj
  64. 0 71
      CSharp/Game/BehaviorTreeTest/ConfigTest.cs
  65. 0 39
      CSharp/Game/BehaviorTreeTest/Properties/AssemblyInfo.cs
  66. 0 33
      CSharp/Game/WorldTest/BuffManagerTest.cs
  67. 0 28
      CSharp/Game/WorldTest/ObjectTest.cs
  68. 0 39
      CSharp/Game/WorldTest/Properties/AssemblyInfo.cs
  69. 0 25
      CSharp/Game/WorldTest/WorldTest.cs
  70. 0 113
      CSharp/Game/WorldTest/WorldTest.csproj
  71. 0 4
      CSharp/Game/WorldTest/packages.config

+ 0 - 88
CSharp/App/BossBase/BossBase.csproj

@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectGuid>{999910D3-4E7D-45B1-BD2C-47289CD4D1AB}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>BossBase</RootNamespace>
-    <AssemblyName>BossBase</AssemblyName>
-    <TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <RestorePackages>true</RestorePackages>
-    <TargetFrameworkProfile />
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>..\..\Bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>..\..\Bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="Microsoft.Practices.Prism.Composition">
-      <HintPath>..\..\packages\Prism.Composition.5.0.0\lib\NET45\Microsoft.Practices.Prism.Composition.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Practices.Prism.Interactivity, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\packages\Prism.Interactivity.5.0.0\lib\NET45\Microsoft.Practices.Prism.Interactivity.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Practices.Prism.MefExtensions">
-      <HintPath>..\..\packages\Prism.MEFExtensions.5.0.0\lib\NET45\Microsoft.Practices.Prism.MefExtensions.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Practices.Prism.Mvvm">
-      <HintPath>..\..\packages\Prism.Mvvm.1.0.0\lib\net45\Microsoft.Practices.Prism.Mvvm.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Practices.Prism.Mvvm.Desktop">
-      <HintPath>..\..\packages\Prism.Mvvm.1.0.0\lib\net45\Microsoft.Practices.Prism.Mvvm.Desktop.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Practices.Prism.PubSubEvents">
-      <HintPath>..\..\packages\Prism.PubSubEvents.1.0.0\lib\portable-sl4+wp7+windows8+net40\Microsoft.Practices.Prism.PubSubEvents.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.Practices.Prism.SharedInterfaces">
-      <HintPath>..\..\packages\Prism.Mvvm.1.0.0\lib\net45\Microsoft.Practices.Prism.SharedInterfaces.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Practices.ServiceLocation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\packages\CommonServiceLocator.1.3\lib\portable-net4+sl5+netcore45+wpa81+wp8\Microsoft.Practices.ServiceLocation.dll</HintPath>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Runtime.Serialization" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="CommonDefines.cs" />
-    <Compile Include="IMessageChannel.cs" />
-    <Compile Include="ReLoginEvent.cs" />
-    <Compile Include="LoginOKEvent.cs" />
-    <Compile Include="Messages.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-    <None Include="Packages.config" />
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\nuget.targets" />
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
-       Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
-  </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-</Project>

+ 0 - 7
CSharp/App/BossBase/CommonDefines.cs

@@ -1,7 +0,0 @@
-namespace BossBase
-{
-    public static class BuffId
-    {
-        public const int BUFF_FORBIDDEN_PLAYER_BUY_ITEM = 660100;
-    }
-}

+ 0 - 11
CSharp/App/BossBase/IMessageChannel.cs

@@ -1,11 +0,0 @@
-using System;
-using System.Threading.Tasks;
-
-namespace BossBase
-{
-    public interface IMessageChannel: IDisposable
-    {
-        void SendMessage<T>(ushort opcode, T message, byte channelID = 0);
-        Task<Tuple<ushort, byte[]>> RecvMessage();
-    }
-}

+ 0 - 8
CSharp/App/BossBase/LoginOKEvent.cs

@@ -1,8 +0,0 @@
-using Microsoft.Practices.Prism.PubSubEvents;
-
-namespace BossBase
-{
-    public class LoginOKEvent: PubSubEvent<IMessageChannel>
-    {
-    }
-}

+ 0 - 313
CSharp/App/BossBase/Messages.cs

@@ -1,313 +0,0 @@
-using System.Collections.Generic;
-using System.Runtime.Serialization;
-
-namespace BossBase
-{
-    public static class MessageOpcode
-    {
-        // realm message opcode
-        public const ushort CMSG_REALM_LIST = 16;
-        public const ushort CMSG_BOSS_GM = 17;
-        public const ushort CMSG_AUTH_LOGON_PERMIT = 800;
-        public const ushort CMSG_OTP_PASSWORD = 801;
-        public const ushort CMSG_PPC_PASSWORD = 802;
-        public const ushort CMSG_AUTH_LOGON_CHALLENGE = 803;
-        public const ushort CMSG_AUTH_LOGON_PROOF = 805;
-        public const ushort SMSG_AUTH_LOGON_CHALLENGE_RESPONSE = 900;
-        public const ushort SMSG_REALM_LOGON_RESPONSE = 901;
-        public const ushort SMSG_REALM_LIST = 902;
-        public const ushort SMSG_LOCK_FOR_SAFE_TIME = 903;
-        public const ushort SMSG_PASSWORD_PROTECT_TYPE = 904;
-        public const ushort SMSG_AUTH_LOGON_PROOF_M2 = 905;
-
-        // gate message opcode
-        public const ushort CMSG_AUTH_SESSION = 2;
-        public const ushort SMSG_AUTH_CHALLENGE = 502;
-        public const ushort SMSG_AUTH_RESPONSE = 503;
-
-        public const ushort SMSG_SERVERTIME = 510;
-
-        public const ushort SMSG_BOSS_SERVERSINFO = 22000;
-        public const ushort SMSG_BOSS_COMMAND_RESPONSE = 22001;
-    }
-
-    public static class ErrorCode
-    {
-        // realm error code
-        public const int REALM_AUTH_SUCCESS = 0;
-        // Unable to connect
-        public const int REALM_AUTH_FAILURE = 1;
-        // Unable to connect
-        public const int REALM_AUTH_UNKNOWN1 = 2;
-        // This game> account has been closed and is no longer available for use.
-        // Please go to site>/banned.html for further information.
-        public const int REALM_AUTH_ACCOUNT_BANNED = 3;
-        // The information you have entered is not valid.
-        // Please check the spelling of the account name and password.
-        // If you need help in retrieving a lost or stolen password,
-        // see site> for more information
-        public const int REALM_AUTH_NO_MATCH = 4;
-        // The information you have entered is not valid.
-        // Please check the spelling of the account name and password.
-        // If you need help in retrieving a lost or stolen password,
-        // see site> for more information
-        public const int REALM_AUTH_UNKNOWN2 = 5;
-        // This account is already logged into game.
-        // Please check the spelling and try again.
-        public const int REALM_AUTH_ACCOUNT_IN_USE = 6;
-        // You have used up your prepaid time for this account.
-        // Please purchase more to continue playing
-        public const int REALM_AUTH_PREPAID_TIME_LIMIT = 7;
-        // Could not log in to game> at this time. Please try again later.
-        public const int REALM_AUTH_SERVER_FULL = 8;
-        // Unable to validate game version.
-        // This may be caused by file corruption or interference of another program.
-        // Please visit site for more information and possible solutions to this
-        // issue.
-        public const int REALM_AUTH_WRONG_BUILD_NUMBER = 9;
-        // Downloading
-        public const int REALM_AUTH_UPDATE_CLIENT = 10;
-        // Unable to connect
-        public const int REALM_AUTH_UNKNOWN3 = 11;
-        // This game account has been temporarily suspended.
-        // Please go to site further information.
-        public const int REALM_AUTH_ACCOUNT_FREEZED = 12;
-        // Unable to connect
-        public const int REALM_AUTH_UNKNOWN4 = 13;
-        // Connected.
-        public const int REALM_AUTH_UNKNOWN5 = 14;
-        // Access to this account has been blocked by parental controls.
-        // Your settings may be changed in your account preferences at site.
-        public const int REALM_AUTH_PARENTAL_CONTROL = 15;
-
-        // 其它error code
-        public const int RESPONSE_SUCCESS = 0;
-        public const int AUTH_OK = 12;
-        public const int BOSS_PLAYER_NOT_FOUND = 164000;
-    }
-
-    [DataContract]
-    public class CMSG_Auth_Logon_Permit
-    {
-        [DataMember(Order = 1, IsRequired = true)]
-        public byte[] Account { get; set; }
-
-        [DataMember(Order = 2, IsRequired = true)]
-        public byte[] PasswordMd5 { get; set; }
-    }
-
-    [DataContract]
-    public class SMSG_Password_Protect_Type
-    {
-        [DataMember(Order = 1, IsRequired = true)]
-        public uint Code { get; set; }
-
-        [DataMember(Order = 2, IsRequired = true)]
-        public uint SubCode { get; set; }
-
-        [DataMember(Order = 3, IsRequired = true)]
-        public uint PasswordProtectType { get; set; }
-
-        [DataMember(Order = 4, IsRequired = true)]
-        public byte[] PpcCoordinate { get; set; }
-    }
-
-    [DataContract]
-    public class CMSG_Auth_Logon_Challenge
-    {
-    }
-
-    [DataContract]
-    public class SMSG_Auth_Logon_Challenge_Response
-    {
-        [DataMember(Order = 1, IsRequired = true)]
-        public int ErrorCode { get; set; }
-
-        [DataMember(Order = 2, IsRequired = true)]
-        public byte[] B { get; set; }
-
-        [DataMember(Order = 3, IsRequired = true)]
-        public byte[] G { get; set; }
-
-        [DataMember(Order = 4, IsRequired = true)]
-        public byte[] N { get; set; }
-
-        [DataMember(Order = 5, IsRequired = true)]
-        public byte[] S { get; set; }
-    }
-
-    [DataContract]
-    public class CMSG_Auth_Logon_Proof
-    {
-        [DataMember(Order = 1, IsRequired = true)]
-        public byte[] A { get; set; }
-
-        [DataMember(Order = 2, IsRequired = true)]
-        public byte[] M { get; set; }
-    }
-
-    [DataContract]
-    public class CMSG_Realm_List
-    {
-    }
-
-    [DataContract]
-    public class SMSG_Auth_Logon_Proof_M2
-    {
-        [DataMember(Order = 1, IsRequired = true)]
-        public int ErrorCode { get; set; }
-
-        [DataMember(Order = 2, IsRequired = true)]
-        public byte[] M { get; set; }
-    }
-
-    [DataContract]
-    public class Realm_List_Gate
-    {
-        [DataMember(Order = 1, IsRequired = true)]
-        public byte[] Name { get; set; }
-
-        [DataMember(Order = 2, IsRequired = true)]
-        public byte[] Address { get; set; }
-
-        [DataMember(Order = 3, IsRequired = true)]
-        public float CityLoad { get; set; }
-    }
-
-    [DataContract]
-    public class Realm_List_City
-    {
-        [DataMember(Order = 1, IsRequired = true)]
-        public string Name { get; set; }
-
-        [DataMember(Order = 2, IsRequired = true)]
-        public float CityLoad { get; set; }
-
-        [DataMember(Order = 3, IsRequired = true)]
-        public bool IsEnable { get; set; }
-    }
-
-    [DataContract]
-    public class SMSG_Realm_List
-    {
-        [DataMember(Order = 1, IsRequired = true)]
-        public string GateIP { get; set; }
-
-        [DataMember(Order = 2, IsRequired = true)]
-        public int GatePort { get; set; }
-
-        [DataMember(Order = 3, IsRequired = true)]
-        public List<Realm_List_City> GateList { get; set; }
-    }
-
-    [DataContract]
-    public class CMSG_Auth_Session
-    {
-        [DataMember(Order = 1, IsRequired = true)]
-        public uint ClientBuild { get; set; }
-
-        [DataMember(Order = 2, IsRequired = true)]
-        public uint Unk2 { get; set; }
-
-        [DataMember(Order = 3, IsRequired = true)]
-        public byte[] Username { get; set; }
-
-        [DataMember(Order = 4, IsRequired = true)]
-        public uint Unk3 { get; set; }
-
-        [DataMember(Order = 5, IsRequired = true)]
-        public uint ClientSeed { get; set; }
-
-        [DataMember(Order = 6, IsRequired = true)]
-        public uint Unk4 { get; set; }
-
-        [DataMember(Order = 7, IsRequired = true)]
-        public byte[] Digest { get; set; }
-
-        [DataMember(Order = 8, IsRequired = false)]
-        public byte[] Mac { get; set; }
-
-        [DataMember(Order = 9, IsRequired = false)]
-        public byte[] Hd { get; set; }
-    }
-
-    // gate message
-    [DataContract]
-    public class SMSG_Auth_Challenge
-    {
-        [DataMember(Order = 1, IsRequired = true)]
-        public uint Num { get; set; }
-
-        [DataMember(Order = 2, IsRequired = true)]
-        public uint Seed { get; set; }
-
-        [DataMember(Order = 3)]
-        public List<uint> Random { get; set; }
-    }
-
-    [DataContract]
-    public class SMSG_Auth_Response
-    {
-        [DataMember(Order = 1, IsRequired = true)]
-        public uint ErrorCode { get; set; }
-    }
-
-    [DataContract]
-    public class CMSG_Boss_Gm
-    {
-        [DataMember(Order = 1, IsRequired = true)]
-        public string Message { get; set; }
-    }
-
-    [DataContract]
-    public class SMSG_Boss_ServersInfo
-    {
-        [DataMember(Order = 1, IsRequired = true)]
-        public List<string> Name { get; set; }
-    }
-
-    [DataContract]
-    public class SMSG_Boss_Command_Response
-    {
-        [DataMember(Order = 1, IsRequired = true)]
-        public uint ErrorCode { get; set; }
-
-        [DataMember(Order = 2, IsRequired = false)]
-        public string Content { get; set; }
-    }
-
-    [DataContract]
-    public class BossMailItem
-    {
-        [DataMember(Order = 1, IsRequired = false)]
-        public uint item_id { get; set; }
-
-        [DataMember(Order = 2, IsRequired = false)]
-        public uint item_count { get; set; }
-    }
-
-    [DataContract]
-    public class BossMail
-    {
-        [DataMember(Order = 1, IsRequired = true)]
-        public string sender_name { get; set; }
-
-        [DataMember(Order = 2, IsRequired = true)]
-        public ulong receiver_guid { get; set; }
-
-        [DataMember(Order = 3, IsRequired = true)]
-        public string subject { get; set; }
-
-        [DataMember(Order = 4, IsRequired = true)]
-        public string content { get; set; }
-
-        [DataMember(Order = 5, IsRequired = false)]
-        public uint free_gold { get; set; }
-
-        [DataMember(Order = 6, IsRequired = false)]
-        public uint silver { get; set; }
-
-        [DataMember(Order = 7, IsRequired = false)]
-        public Dictionary<int, int> item_dict { get; set; }
-    }
-}

+ 0 - 10
CSharp/App/BossBase/Packages.config

@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
-  <package id="CommonServiceLocator" version="1.3" targetFramework="net45" />
-  <package id="Prism" version="5.0.0" targetFramework="net45" />
-  <package id="Prism.Composition" version="5.0.0" targetFramework="net45" />
-  <package id="Prism.Interactivity" version="5.0.0" targetFramework="net45" />
-  <package id="Prism.MEFExtensions" version="5.0.0" targetFramework="net45" />
-  <package id="Prism.Mvvm" version="1.0.0" targetFramework="net45" />
-  <package id="Prism.PubSubEvents" version="1.0.0" targetFramework="net45" />
-</packages>

+ 0 - 39
CSharp/App/BossBase/Properties/AssemblyInfo.cs

@@ -1,39 +0,0 @@
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// 有关程序集的常规信息通过以下
-// 特性集控制。更改这些特性值可修改
-// 与程序集关联的信息。
-
-[assembly: AssemblyTitle("Events")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("Events")]
-[assembly: AssemblyCopyright("Copyright ©  2013")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// 将 ComVisible 设置为 false 使此程序集中的类型
-// 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型,
-// 则将该类型上的 ComVisible 特性设置为 true。
-
-[assembly: ComVisible(false)]
-
-// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
-
-[assembly: Guid("288940c7-28fd-45cd-a5f7-87eaeef4740d")]
-
-// 程序集的版本信息由下面四个值组成:
-//
-//      主版本
-//      次版本 
-//      生成号
-//      修订号
-//
-// 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
-// 方法是按如下所示使用“*”:
-// [assembly: AssemblyVersion("1.0.*")]
-
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]

+ 0 - 8
CSharp/App/BossBase/ReLoginEvent.cs

@@ -1,8 +0,0 @@
-using Microsoft.Practices.Prism.PubSubEvents;
-
-namespace BossBase
-{
-    public class ReLoginEvent: PubSubEvent<object>
-    {
-    }
-}

+ 0 - 11
CSharp/App/BossBase/app.config

@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
-  <runtime>
-    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
-      <dependentAssembly>
-        <assemblyIdentity name="Microsoft.Practices.ServiceLocation" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
-        <bindingRedirect oldVersion="0.0.0.0-1.3.0.0" newVersion="1.3.0.0"/>
-      </dependentAssembly>
-    </assemblyBinding>
-  </runtime>
-<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1"/></startup></configuration>

+ 0 - 58
CSharp/App/BossClient/BossClient.cs

@@ -1,58 +0,0 @@
-using System;
-using System.Net.Sockets;
-using System.Threading.Tasks;
-using ENet;
-using Logger;
-
-namespace BossClient
-{
-    public class BossClient: IDisposable
-    {
-        private int sessionId;
-
-        private readonly EService ioService = new EService();
-
-        public BossClient()
-        {
-            this.ioService.EnableCrc();
-        }
-
-        public void Dispose()
-        {
-            this.ioService.Dispose();
-        }
-
-        public void RunOnce()
-        {
-            this.ioService.RunOnce();
-        }
-
-        public void Start(int timeout)
-        {
-            this.ioService.Start(timeout);
-        }
-
-        public GateSession GateSession { get; private set; }
-
-        public async Task Login(string hostName, ushort port, string account, string password)
-        {
-            int loginSessionId = ++this.sessionId;
-
-            // 登录realm
-            var tcpClient = new TcpClient();
-            await tcpClient.ConnectAsync(hostName, port);
-            Tuple<string, ushort, SRP6Client> realmInfo = null; // ip, port, K
-            using (var realmSession = new RealmSession(loginSessionId, new TcpChannel(tcpClient)))
-            {
-                realmInfo = await realmSession.Login(account, password);
-                Log.Trace("session: {0}, login success!", realmSession.ID);
-            }
-
-            // 登录gate
-            var eSocket = new ESocket(this.ioService);
-            await eSocket.ConnectAsync(realmInfo.Item1, realmInfo.Item2);
-            this.GateSession = new GateSession(loginSessionId, new ENetChannel(eSocket));
-            await this.GateSession.Login(realmInfo.Item3);
-        }
-    }
-}

+ 0 - 80
CSharp/App/BossClient/BossClient.csproj

@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectGuid>{8650195A-7904-4EBC-9D81-B392A7E9B9B3}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>BossClient</RootNamespace>
-    <AssemblyName>BossClient</AssemblyName>
-    <TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <RestorePackages>true</RestorePackages>
-    <TargetFrameworkProfile />
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>..\..\Bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>..\..\Bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Numerics" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="ENetChannel.cs" />
-    <Compile Include="GateSession.cs" />
-    <Compile Include="BossClient.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="BossException.cs" />
-    <Compile Include="RealmSession.cs" />
-    <Compile Include="SRP6Client.cs" />
-    <Compile Include="TcpChannel.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\..\Platform\ENet\ENet.csproj">
-      <Project>{D0B4CFAC-A368-4742-9863-68776CFA9938}</Project>
-      <Name>ENet</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\..\Platform\Helper\Helper.csproj">
-      <Project>{24233cd5-a5df-484b-a482-b79cb7a0d9cb}</Project>
-      <Name>Helper</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\..\Platform\Logger\Logger.csproj">
-      <Project>{72e16572-fc1f-4a9e-bc96-035417239298}</Project>
-      <Name>Logger</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\BossBase\BossBase.csproj">
-      <Project>{999910d3-4e7d-45b1-bd2c-47289cd4d1ab}</Project>
-      <Name>BossBase</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\nuget.targets" />
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
-       Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
-  </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-</Project>

+ 0 - 25
CSharp/App/BossClient/BossException.cs

@@ -1,25 +0,0 @@
-using System;
-using System.Runtime.Serialization;
-
-namespace BossClient
-{
-    [Serializable]
-    public class BossException: Exception
-    {
-        public BossException()
-        {
-        }
-
-        public BossException(string message): base(message)
-        {
-        }
-
-        public BossException(string message, Exception inner): base(message, inner)
-        {
-        }
-
-        protected BossException(SerializationInfo info, StreamingContext context)
-        {
-        }
-    }
-}

+ 0 - 70
CSharp/App/BossClient/ENetChannel.cs

@@ -1,70 +0,0 @@
-using System;
-using System.IO;
-using System.IO.Compression;
-using System.Threading.Tasks;
-using BossBase;
-using ENet;
-using Helper;
-
-namespace BossClient
-{
-    internal class ENetChannel: IMessageChannel
-    {
-        private readonly ESocket eSocket;
-
-        public ENetChannel(ESocket eSocket)
-        {
-            this.eSocket = eSocket;
-        }
-
-        public async void Dispose()
-        {
-            await this.eSocket.DisconnectLaterAsync();
-            this.eSocket.Dispose();
-        }
-
-        public void SendMessage<T>(ushort opcode, T message, byte channelID = 0)
-        {
-            byte[] protoBytes = ProtobufHelper.ToBytes(message);
-            var neworkBytes = new byte[sizeof (ushort) + protoBytes.Length];
-
-            var opcodeBytes = BitConverter.GetBytes(opcode);
-            opcodeBytes.CopyTo(neworkBytes, 0);
-            protoBytes.CopyTo(neworkBytes, sizeof (ushort));
-            this.eSocket.WriteAsync(neworkBytes, channelID);
-        }
-
-        public async Task<Tuple<ushort, byte[]>> RecvMessage()
-        {
-            var bytes = await this.eSocket.ReadAsync();
-            const int opcodeSize = sizeof (ushort);
-            ushort opcode = BitConverter.ToUInt16(bytes, 0);
-            byte flag = bytes[2];
-
-            switch (flag)
-            {
-                case 0:
-                {
-                    var messageBytes = new byte[bytes.Length - opcodeSize - 1];
-                    Array.Copy(bytes, opcodeSize + 1, messageBytes, 0, messageBytes.Length);
-                    return Tuple.Create(opcode, messageBytes);
-                }
-                default:
-                {
-                    var decompressStream = new MemoryStream();
-                    using (
-                            var zipStream =
-                                    new GZipStream(
-                                            new MemoryStream(bytes, opcodeSize + 5,
-                                                    bytes.Length - opcodeSize - 5),
-                                            CompressionMode.Decompress))
-                    {
-                        zipStream.CopyTo(decompressStream);
-                    }
-                    var decompressBytes = decompressStream.ToArray();
-                    return Tuple.Create(opcode, decompressBytes);
-                }
-            }
-        }
-    }
-}

+ 0 - 93
CSharp/App/BossClient/GateSession.cs

@@ -1,93 +0,0 @@
-using System;
-using System.Threading.Tasks;
-using BossBase;
-using Helper;
-using Logger;
-
-namespace BossClient
-{
-    public class GateSession: IDisposable
-    {
-        public int ID { get; set; }
-
-        public IMessageChannel IMessageChannel { get; set; }
-
-        public GateSession(int id, IMessageChannel eNetChannel)
-        {
-            this.ID = id;
-            this.IMessageChannel = eNetChannel;
-        }
-
-        public void Dispose()
-        {
-            this.IMessageChannel.Dispose();
-        }
-
-        public void SendMessage<T>(ushort opcode, T message, byte channelID = 0)
-        {
-            this.IMessageChannel.SendMessage(opcode, message, channelID);
-        }
-
-        public async Task Login(SRP6Client srp6Client)
-        {
-            var smsgAuthChallenge = await this.Handle_SMSG_Auth_Challenge();
-
-            var clientSeed = (uint) TimeHelper.EpochTimeSecond();
-            byte[] digest = srp6Client.CalculateGateDigest(clientSeed, smsgAuthChallenge.Seed);
-
-            var cmsgAuthSession = new CMSG_Auth_Session
-            {
-                ClientBuild = 11723,
-                ClientSeed = clientSeed,
-                Digest = digest,
-                Hd = new byte[0],
-                Mac = new byte[0],
-                Unk2 = 0,
-                Unk3 = 0,
-                Unk4 = 0,
-                Username = srp6Client.Account
-            };
-            this.IMessageChannel.SendMessage(MessageOpcode.CMSG_AUTH_SESSION, cmsgAuthSession);
-
-            var smsgAuthResponse = await this.Handle_SMSG_Auth_Response();
-
-            if (smsgAuthResponse.ErrorCode != ErrorCode.AUTH_OK)
-            {
-                throw new BossException(string.Format("session: {0}, SMSG_Auth_Response: {1}",
-                        this.ID, MongoHelper.ToJson(smsgAuthResponse)));
-            }
-
-            Log.Trace("session: {0}, login gate OK!", this.ID);
-        }
-
-        public async Task<SMSG_Auth_Challenge> Handle_SMSG_Auth_Challenge()
-        {
-            var result = await this.IMessageChannel.RecvMessage();
-            ushort opcode = result.Item1;
-            byte[] message = result.Item2;
-            Log.Debug("message: {0}", message.ToHex());
-            if (opcode != MessageOpcode.SMSG_AUTH_CHALLENGE)
-            {
-                throw new BossException(string.Format("session: {0}, opcode: {1}", this.ID, opcode));
-            }
-
-            var smsgAuthChallenge = ProtobufHelper.FromBytes<SMSG_Auth_Challenge>(message);
-            return smsgAuthChallenge;
-        }
-
-        public async Task<SMSG_Auth_Response> Handle_SMSG_Auth_Response()
-        {
-            var result = await this.IMessageChannel.RecvMessage();
-            ushort opcode = result.Item1;
-            byte[] message = result.Item2;
-
-            if (opcode != MessageOpcode.SMSG_AUTH_RESPONSE)
-            {
-                throw new BossException(string.Format("session: {0}, opcode: {1}", this.ID, opcode));
-            }
-
-            var smsgAuthResponse = ProtobufHelper.FromBytes<SMSG_Auth_Response>(message);
-            return smsgAuthResponse;
-        }
-    }
-}

+ 0 - 39
CSharp/App/BossClient/Properties/AssemblyInfo.cs

@@ -1,39 +0,0 @@
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// 有关程序集的常规信息通过以下
-// 特性集控制。更改这些特性值可修改
-// 与程序集关联的信息。
-
-[assembly: AssemblyTitle("BossClient")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("BossClient")]
-[assembly: AssemblyCopyright("Copyright ©  2013")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// 将 ComVisible 设置为 false 使此程序集中的类型
-// 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型,
-// 则将该类型上的 ComVisible 特性设置为 true。
-
-[assembly: ComVisible(false)]
-
-// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
-
-[assembly: Guid("46a9e699-b647-4fde-bcc1-5bb0aead64ff")]
-
-// 程序集的版本信息由下面四个值组成:
-//
-//      主版本
-//      次版本 
-//      生成号
-//      修订号
-//
-// 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
-// 方法是按如下所示使用“*”:
-// [assembly: AssemblyVersion("1.0.*")]
-
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]

+ 0 - 189
CSharp/App/BossClient/RealmSession.cs

@@ -1,189 +0,0 @@
-using System;
-using System.Security.Cryptography;
-using System.Threading.Tasks;
-using BossBase;
-using Helper;
-using Logger;
-
-namespace BossClient
-{
-    public class RealmSession: IDisposable
-    {
-        public int ID { get; set; }
-
-        public IMessageChannel MessageChannel { get; set; }
-
-        public RealmSession(int id, IMessageChannel messageChannel)
-        {
-            this.ID = id;
-            this.MessageChannel = messageChannel;
-        }
-
-        public void Dispose()
-        {
-            this.MessageChannel.Dispose();
-        }
-
-        public async Task<SMSG_Password_Protect_Type> Handle_SMSG_Password_Protect_Type()
-        {
-            var result = await this.MessageChannel.RecvMessage();
-            ushort opcode = result.Item1;
-            byte[] message = result.Item2;
-
-            if (opcode != MessageOpcode.SMSG_PASSWORD_PROTECT_TYPE)
-            {
-                throw new BossException(string.Format("session: {0}, opcode: {1}", this.ID, opcode));
-            }
-
-            var smsgPasswordProtectType =
-                    ProtobufHelper.FromBytes<SMSG_Password_Protect_Type>(message);
-
-            return smsgPasswordProtectType;
-        }
-
-        public async Task<SMSG_Auth_Logon_Challenge_Response>
-                Handle_SMSG_Auth_Logon_Challenge_Response()
-        {
-            var result = await this.MessageChannel.RecvMessage();
-            ushort opcode = result.Item1;
-            byte[] message = result.Item2;
-
-            if (opcode != MessageOpcode.SMSG_AUTH_LOGON_CHALLENGE_RESPONSE)
-            {
-                Log.Trace("opcode: {0}", opcode);
-                throw new BossException(string.Format("session: {0}, opcode: {1}", this.ID, opcode));
-            }
-
-            var smsgAuthLogonChallengeResponse =
-                    ProtobufHelper.FromBytes<SMSG_Auth_Logon_Challenge_Response>(message);
-
-            return smsgAuthLogonChallengeResponse;
-        }
-
-        public async Task<SMSG_Auth_Logon_Proof_M2> Handle_SMSG_Auth_Logon_Proof_M2()
-        {
-            var result = await this.MessageChannel.RecvMessage();
-            ushort opcode = result.Item1;
-            byte[] message = result.Item2;
-
-            if (opcode != MessageOpcode.SMSG_AUTH_LOGON_PROOF_M2)
-            {
-                throw new BossException(string.Format("session: {0}, error opcode: {1}", this.ID,
-                        opcode));
-            }
-
-            var smsgAuthLogonProofM2 = ProtobufHelper.FromBytes<SMSG_Auth_Logon_Proof_M2>(message);
-            return smsgAuthLogonProofM2;
-        }
-
-        public async Task<SMSG_Realm_List> Handle_SMSG_Realm_List()
-        {
-            var result = await this.MessageChannel.RecvMessage();
-            ushort opcode = result.Item1;
-            byte[] message = result.Item2;
-
-            if (opcode != MessageOpcode.SMSG_REALM_LIST)
-            {
-                throw new BossException(string.Format("session: {0}, error opcode: {1}", this.ID,
-                        opcode));
-            }
-
-            var smsgRealmList = ProtobufHelper.FromBytes<SMSG_Realm_List>(message);
-
-            return smsgRealmList;
-        }
-
-        public async Task<Tuple<string, ushort, SRP6Client>> Login(string account, string password)
-        {
-            byte[] passwordBytes = password.ToByteArray();
-            MD5 md5 = MD5.Create();
-            byte[] passwordMd5 = md5.ComputeHash(passwordBytes);
-            byte[] passwordMd5Hex = passwordMd5.ToHex().ToLower().ToByteArray();
-
-            // 发送帐号和密码MD5
-            var cmsgAuthLogonPermit = new CMSG_Auth_Logon_Permit
-            {
-                Account = account.ToByteArray(),
-                PasswordMd5 = passwordMd5Hex
-            };
-
-            Log.Trace("session: {0}, account: {1}, password: {2}", this.ID,
-                    cmsgAuthLogonPermit.Account.ToStr(), cmsgAuthLogonPermit.PasswordMd5.ToHex());
-
-            this.MessageChannel.SendMessage(MessageOpcode.CMSG_AUTH_LOGON_PERMIT,
-                    cmsgAuthLogonPermit);
-
-            var smsgPasswordProtectType = await this.Handle_SMSG_Password_Protect_Type();
-            if (smsgPasswordProtectType.Code != 200)
-            {
-                throw new BossException(
-                        string.Format("session: {0}, SMSG_Password_Protect_Type: {1}", this.ID,
-                                MongoHelper.ToJson(smsgPasswordProtectType)));
-            }
-
-            // 这个消息已经没有作用,只用来保持原有的代码流程
-            var cmsgAuthLogonChallenge = new CMSG_Auth_Logon_Challenge();
-            this.MessageChannel.SendMessage(MessageOpcode.CMSG_AUTH_LOGON_CHALLENGE,
-                    cmsgAuthLogonChallenge);
-
-            var smsgAuthLogonChallengeResponse =
-                    await this.Handle_SMSG_Auth_Logon_Challenge_Response();
-            if (smsgAuthLogonChallengeResponse.ErrorCode != ErrorCode.REALM_AUTH_SUCCESS)
-            {
-                throw new BossException(
-                        string.Format("session: {0}, SMSG_Auth_Logon_Challenge_Response: {1}",
-                                this.ID, MongoHelper.ToJson(smsgAuthLogonChallengeResponse)));
-            }
-
-            Log.Trace("session: {0}, SMSG_Auth_Logon_Challenge_Response OK", this.ID);
-
-            // 以下是SRP6处理过程
-            var n = smsgAuthLogonChallengeResponse.N.ToUBigInteger();
-            var g = smsgAuthLogonChallengeResponse.G.ToUBigInteger();
-            var b = smsgAuthLogonChallengeResponse.B.ToUBigInteger();
-            var salt = smsgAuthLogonChallengeResponse.S.ToUBigInteger();
-
-            var srp6Client = new SRP6Client(new SHA1Managed(), n, g, b, salt, account.ToByteArray(),
-                    passwordMd5Hex);
-
-            Log.Debug("s: {0}\nN: {1}\nG: {2}\nB: {3}\nA: {4}\nS: {5}\nK: {6}\nm: {7}\na: {8}",
-                    srp6Client.Salt.ToUBigIntegerArray().ToHex(),
-                    srp6Client.N.ToUBigIntegerArray().ToHex(),
-                    srp6Client.G.ToUBigIntegerArray().ToHex(),
-                    srp6Client.B.ToUBigIntegerArray().ToHex(),
-                    srp6Client.A.ToUBigIntegerArray().ToHex(),
-                    srp6Client.S.ToUBigIntegerArray().ToHex(),
-                    srp6Client.K.ToUBigIntegerArray().ToHex(),
-                    srp6Client.M.ToUBigIntegerArray().ToHex(),
-                    srp6Client.SmallA.ToUBigIntegerArray().ToHex());
-
-            var cmsgAuthLogonProof = new CMSG_Auth_Logon_Proof
-            {
-                A = srp6Client.A.ToUBigIntegerArray(),
-                M = srp6Client.M.ToUBigIntegerArray()
-            };
-            this.MessageChannel.SendMessage(MessageOpcode.CMSG_AUTH_LOGON_PROOF, cmsgAuthLogonProof);
-
-            var smsgAuthLogonProofM2 = await this.Handle_SMSG_Auth_Logon_Proof_M2();
-            if (smsgAuthLogonProofM2.ErrorCode != ErrorCode.REALM_AUTH_SUCCESS)
-            {
-                throw new BossException(string.Format(
-                                                      "session: {0}, SMSG_Auth_Logon_Proof_M2: {1}",
-                        this.ID, MongoHelper.ToJson(smsgAuthLogonProofM2)));
-            }
-
-            Log.Trace("session: {0}, SMSG_Auth_Logon_Proof_M2 OK", this.ID);
-
-            // 请求realm list
-            var cmsgRealmList = new CMSG_Realm_List();
-            this.MessageChannel.SendMessage(MessageOpcode.CMSG_REALM_LIST, cmsgRealmList);
-            var smsgRealmList = await this.Handle_SMSG_Realm_List();
-
-            Log.Trace("session: {0}, SMSG_Realm_List OK", this.ID);
-
-            string gateIP = smsgRealmList.GateIP;
-            ushort gatePort = (ushort) smsgRealmList.GatePort;
-            return Tuple.Create(gateIP, gatePort, srp6Client);
-        }
-    }
-}

+ 0 - 287
CSharp/App/BossClient/SRP6Client.cs

@@ -1,287 +0,0 @@
-using System;
-using System.Linq;
-using System.Numerics;
-using System.Security.Cryptography;
-using Helper;
-
-namespace BossClient
-{
-    public class SRP6Client
-    {
-        private readonly BigInteger n; // N
-        private readonly BigInteger g; // g
-        private readonly BigInteger b; // B
-        private readonly BigInteger a; // A
-        private readonly BigInteger x; // X
-        private readonly BigInteger u; // U
-        private readonly BigInteger s; // S
-        private readonly BigInteger k; // K
-        private readonly BigInteger m; // M
-        private readonly byte[] p;
-        private readonly byte[] account;
-        private readonly BigInteger salt; // s, 服务端发过来的salt
-        private const int lowerK = 3;
-        private readonly BigInteger smallA;
-        private readonly HashAlgorithm hashAlgorithm;
-
-        public SRP6Client(
-                HashAlgorithm hashAlgorithm, BigInteger n, BigInteger g, BigInteger b,
-                BigInteger salt, byte[] account, byte[] passwordMd5Hex)
-        {
-            this.smallA = BigIntegerHelper.RandUnsignedBigInteger(19);
-
-            this.hashAlgorithm = hashAlgorithm;
-            this.n = n;
-            this.g = g;
-            this.b = b;
-            this.salt = salt;
-            this.account = account;
-            this.p =
-                    hashAlgorithm.ComputeHash(
-                                              new byte[0].Concat(account)
-                                                      .Concat(new[] { (byte) ':' })
-                                                      .Concat(passwordMd5Hex)
-                                                      .ToArray());
-
-            this.a = this.CalculateA(); // A = g ^ a % N
-            this.x = this.CalculateX(); // X = H(s, P)
-            this.u = this.CalculateU(); // U = H(A, B)
-            this.s = this.CalculateS(); // S = (B - (k * g.ModExp(x, N))).ModExp(a + (u * x), N)
-            this.k = this.CalculateK();
-            this.m = this.CalculateM(); // H(H(N) ^ H(g), H(P), s, A, B, K)
-        }
-
-        public BigInteger N
-        {
-            get
-            {
-                return this.n;
-            }
-        }
-
-        public BigInteger G
-        {
-            get
-            {
-                return this.g;
-            }
-        }
-
-        public BigInteger B
-        {
-            get
-            {
-                return this.b;
-            }
-        }
-
-        public BigInteger A
-        {
-            get
-            {
-                return this.a;
-            }
-        }
-
-        public BigInteger X
-        {
-            get
-            {
-                return this.x;
-            }
-        }
-
-        public BigInteger U
-        {
-            get
-            {
-                return this.u;
-            }
-        }
-
-        public BigInteger S
-        {
-            get
-            {
-                return this.s;
-            }
-        }
-
-        public BigInteger K
-        {
-            get
-            {
-                return this.k;
-            }
-        }
-
-        public BigInteger M
-        {
-            get
-            {
-                return this.m;
-            }
-        }
-
-        public byte[] P
-        {
-            get
-            {
-                return this.p;
-            }
-        }
-
-        public BigInteger Salt
-        {
-            get
-            {
-                return this.salt;
-            }
-        }
-
-        public BigInteger SmallA
-        {
-            get
-            {
-                return this.smallA;
-            }
-        }
-
-        public byte[] Account
-        {
-            get
-            {
-                return this.account;
-            }
-        }
-
-        /// <summary>
-        /// 计算X: X = H(s, P)
-        /// </summary>
-        /// <returns></returns>
-        private BigInteger CalculateX()
-        {
-            this.hashAlgorithm.Initialize();
-            var joinBytes =
-                    new byte[0].Concat(this.Salt.ToUBigIntegerArray()).Concat(this.P).ToArray();
-            return this.hashAlgorithm.ComputeHash(joinBytes).ToUBigInteger();
-        }
-
-        /// <summary>
-        /// 计算A: A = g ^ a % N
-        /// </summary>
-        /// <returns></returns>
-        private BigInteger CalculateA()
-        {
-            return BigIntegerHelper.UModPow(this.G, this.SmallA, this.N);
-        }
-
-        /// <summary>
-        /// 计算U: U = H(A, B)
-        /// </summary>
-        /// <returns></returns>
-        private BigInteger CalculateU()
-        {
-            this.hashAlgorithm.Initialize();
-
-            var joinBytes =
-                    new byte[0].Concat(this.A.ToUBigIntegerArray(32))
-                            .Concat(this.B.ToUBigIntegerArray(32))
-                            .ToArray();
-            return this.hashAlgorithm.ComputeHash(joinBytes).ToUBigInteger();
-        }
-
-        /// <summary>
-        /// 计算S: S = (B - (k * g.ModExp(x, N))).ModExp(a + (u * x), N);
-        /// </summary>
-        /// <returns></returns>
-        private BigInteger CalculateS()
-        {
-            BigInteger s1 = this.B - BigIntegerHelper.UModPow(this.G, this.X, this.N) * lowerK;
-            BigInteger s2 = this.SmallA + (this.U * this.X);
-            BigInteger s3 = BigIntegerHelper.UModPow(s1, s2, this.N);
-            return s3;
-        }
-
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <returns></returns>
-        private BigInteger CalculateK()
-        {
-            this.hashAlgorithm.Initialize();
-            byte[] sBytes = this.S.ToUBigIntegerArray();
-            int halfLength = sBytes.Length / 2;
-            var kBytes = new byte[40];
-            var halfS = new byte[halfLength];
-
-            for (int i = 0; i < halfLength; ++i)
-            {
-                halfS[i] = sBytes[i * 2];
-            }
-            var p1 = this.hashAlgorithm.ComputeHash(halfS);
-            for (int i = 0; i < 20; ++i)
-            {
-                kBytes[i * 2] = p1[i];
-            }
-
-            for (int i = 0; i < halfLength; ++i)
-            {
-                halfS[i] = sBytes[i * 2 + 1];
-            }
-            var p2 = this.hashAlgorithm.ComputeHash(halfS);
-            for (int i = 0; i < 20; ++i)
-            {
-                kBytes[i * 2 + 1] = p2[i];
-            }
-
-            return kBytes.ToUBigInteger();
-        }
-
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <returns></returns>
-        private BigInteger CalculateM()
-        {
-            this.hashAlgorithm.Initialize();
-            var hashN = this.hashAlgorithm.ComputeHash(this.N.ToUBigIntegerArray());
-            var hashG = this.hashAlgorithm.ComputeHash(this.G.ToUBigIntegerArray());
-
-            // 这里与标准srp6不一样,只异或了20个byte,实际上有32个byte
-            for (var i = 0; i < 20; ++i)
-            {
-                hashN[i] ^= hashG[i];
-            }
-
-            var hashGXorhashN = hashN; // H(N) ^ H(g)
-            var hashedIdentity = this.hashAlgorithm.ComputeHash(this.Account); // H(I)
-
-            // H(H(N) ^ H(g), H(P), s, A, B, K_c)
-            var mBytes =
-                    this.hashAlgorithm.ComputeHash(
-                                                   new byte[0].Concat(hashGXorhashN)
-                                                           .Concat(hashedIdentity)
-                                                           .Concat(this.Salt.ToUBigIntegerArray(32))
-                                                           .Concat(this.A.ToUBigIntegerArray(32))
-                                                           .Concat(this.B.ToUBigIntegerArray(32))
-                                                           .Concat(this.K.ToUBigIntegerArray(40))
-                                                           .ToArray());
-            return mBytes.ToUBigInteger();
-        }
-
-        public byte[] CalculateGateDigest(uint clientSeed, uint serverSeed)
-        {
-            this.hashAlgorithm.Initialize();
-            var digest =
-                    this.hashAlgorithm.ComputeHash(
-                                                   new byte[0].Concat(this.Account)
-                                                           .Concat(new byte[4] { 0, 0, 0, 0 })
-                                                           .Concat(BitConverter.GetBytes(clientSeed))
-                                                           .Concat(BitConverter.GetBytes(serverSeed))
-                                                           .Concat(this.k.ToUBigIntegerArray())
-                                                           .ToArray());
-            return digest;
-        }
-    }
-}

+ 0 - 88
CSharp/App/BossClient/TcpChannel.cs

@@ -1,88 +0,0 @@
-using System;
-using System.Net.Sockets;
-using System.Threading.Tasks;
-using BossBase;
-using Helper;
-using Logger;
-
-namespace BossClient
-{
-    public class TcpChannel: IMessageChannel
-    {
-        private readonly NetworkStream networkStream;
-
-        public TcpChannel(TcpClient tcpClient)
-        {
-            this.networkStream = tcpClient.GetStream();
-        }
-
-        public void Dispose()
-        {
-            this.networkStream.Dispose();
-        }
-
-        public async void SendMessage<T>(ushort opcode, T message, byte channelID = 0)
-        {
-            byte[] protoBytes = ProtobufHelper.ToBytes(message);
-            var neworkBytes = new byte[sizeof (int) + sizeof (ushort) + protoBytes.Length];
-
-            int totalSize = sizeof (ushort) + protoBytes.Length;
-
-            var totalSizeBytes = BitConverter.GetBytes(totalSize);
-            totalSizeBytes.CopyTo(neworkBytes, 0);
-
-            var opcodeBytes = BitConverter.GetBytes(opcode);
-            opcodeBytes.CopyTo(neworkBytes, sizeof (int));
-
-            protoBytes.CopyTo(neworkBytes, sizeof (int) + sizeof (ushort));
-
-            await this.networkStream.WriteAsync(neworkBytes, 0, neworkBytes.Length);
-        }
-
-        public async Task<Tuple<ushort, byte[]>> RecvMessage()
-        {
-            int totalReadSize = 0;
-            int needReadSize = sizeof (int);
-            var packetBytes = new byte[needReadSize];
-            while (totalReadSize != needReadSize)
-            {
-                int readSize =
-                        await
-                                this.networkStream.ReadAsync(packetBytes, totalReadSize,
-                                        packetBytes.Length);
-                if (readSize == 0)
-                {
-                    throw new BossException("connection closed");
-                }
-                totalReadSize += readSize;
-            }
-
-            int packetSize = BitConverter.ToInt32(packetBytes, 0);
-            Log.Debug("packetSize: {0}", packetSize);
-
-            // 读opcode和message
-            totalReadSize = 0;
-            needReadSize = packetSize;
-            var contentBytes = new byte[needReadSize];
-            while (totalReadSize != needReadSize)
-            {
-                int readSize =
-                        await
-                                this.networkStream.ReadAsync(contentBytes, totalReadSize,
-                                        contentBytes.Length);
-                if (readSize == 0)
-                {
-                    throw new BossException("connection closed");
-                }
-                totalReadSize += readSize;
-            }
-
-            ushort opcode = BitConverter.ToUInt16(contentBytes, 0);
-
-            var messageBytes = new byte[needReadSize - sizeof (ushort)];
-            Array.Copy(contentBytes, sizeof (ushort), messageBytes, 0, messageBytes.Length);
-
-            return Tuple.Create(opcode, messageBytes);
-        }
-    }
-}

+ 0 - 11
CSharp/App/BossClient/app.config

@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
-  <runtime>
-    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
-      <dependentAssembly>
-        <assemblyIdentity name="Microsoft.Practices.ServiceLocation" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
-        <bindingRedirect oldVersion="0.0.0.0-1.3.0.0" newVersion="1.3.0.0"/>
-      </dependentAssembly>
-    </assemblyBinding>
-  </runtime>
-<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1"/></startup></configuration>

+ 0 - 53
CSharp/App/BossCommand/ABossCommand.cs

@@ -1,53 +0,0 @@
-using System;
-using System.Threading.Tasks;
-using BossBase;
-using Helper;
-using Logger;
-
-namespace BossCommand
-{
-    public abstract class ABossCommand
-    {
-        protected IMessageChannel IMessageChannel { get; set; }
-
-        protected void SendMessage(CMSG_Boss_Gm cmsgBossGm)
-        {
-            this.IMessageChannel.SendMessage(MessageOpcode.CMSG_BOSS_GM, cmsgBossGm);
-        }
-
-        public string CommandString { get; set; }
-
-        protected async Task<T> RecvMessage<T>()
-        {
-            var result = await this.IMessageChannel.RecvMessage();
-            ushort opcode = result.Item1;
-            byte[] content = result.Item2;
-
-            try
-            {
-                var message = ProtobufHelper.FromBytes<T>(content);
-                return message;
-            }
-            catch (Exception)
-            {
-                Log.Trace("parse message fail, opcode: {0}", opcode);
-                throw;
-            }
-        }
-
-        protected ABossCommand(IMessageChannel iMessageChannel)
-        {
-            this.IMessageChannel = iMessageChannel;
-        }
-
-        public virtual Task<object> DoAsync()
-        {
-            throw new NotImplementedException();
-        }
-
-        public void UndoAsync()
-        {
-            throw new NotImplementedException();
-        }
-    }
-}

+ 0 - 21
CSharp/App/BossCommand/App.config

@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
-  <configSections>
-    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
-  </configSections>
-  <entityFramework>
-    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
-      <parameters>
-        <parameter value="v11.0"/>
-      </parameters>
-    </defaultConnectionFactory>
-  </entityFramework>
-  <runtime>
-    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
-      <dependentAssembly>
-        <assemblyIdentity name="Microsoft.Practices.ServiceLocation" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
-        <bindingRedirect oldVersion="0.0.0.0-1.3.0.0" newVersion="1.3.0.0"/>
-      </dependentAssembly>
-    </assemblyBinding>
-  </runtime>
-<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1"/></startup></configuration>

+ 0 - 22
CSharp/App/BossCommand/BCCommand.cs

@@ -1,22 +0,0 @@
-using System.Threading.Tasks;
-using BossBase;
-
-namespace BossCommand
-{
-    public class BCCommand: ABossCommand
-    {
-        public string Command { get; set; }
-
-        public BCCommand(IMessageChannel iMessageChannel): base(iMessageChannel)
-        {
-        }
-
-        public override async Task<object> DoAsync()
-        {
-            this.SendMessage(new CMSG_Boss_Gm { Message = this.Command });
-
-            var smsgBossCommandResponse = await this.RecvMessage<SMSG_Boss_Command_Response>();
-            return smsgBossCommandResponse;
-        }
-    }
-}

+ 0 - 25
CSharp/App/BossCommand/BCForbidLogin.cs

@@ -1,25 +0,0 @@
-using System.Threading.Tasks;
-using BossBase;
-
-namespace BossCommand
-{
-    public class BCForbidLogin: ABossCommand
-    {
-        public string Command { get; set; }
-        public string Content { get; set; }
-        public string ForbiddenLoginTime { get; set; }
-
-        public BCForbidLogin(IMessageChannel iMessageChannel): base(iMessageChannel)
-        {
-        }
-
-        public override async Task<object> DoAsync()
-        {
-            this.CommandString = string.Format("{0} {1} {2}", this.Command, this.Content,
-                    this.ForbiddenLoginTime);
-            this.SendMessage(new CMSG_Boss_Gm { Message = this.CommandString });
-            var smsgBossCommandResponse = await this.RecvMessage<SMSG_Boss_Command_Response>();
-            return smsgBossCommandResponse.ErrorCode;
-        }
-    }
-}

+ 0 - 25
CSharp/App/BossCommand/BCForbiddenCharacter.cs

@@ -1,25 +0,0 @@
-using System.Threading.Tasks;
-using BossBase;
-
-namespace BossCommand
-{
-    public class BCForbiddenCharacter: ABossCommand
-    {
-        public BCForbiddenCharacter(IMessageChannel iMessageChannel): base(iMessageChannel)
-        {
-        }
-
-        public string Guid { get; set; }
-        public string Command { get; set; }
-        public string ForbiddenTime { get; set; }
-
-        public override async Task<object> DoAsync()
-        {
-            this.CommandString = string.Format("{0} {1} {2}", this.Command, this.Guid,
-                    this.ForbiddenTime);
-            this.SendMessage(new CMSG_Boss_Gm { Message = this.CommandString });
-            var smsgBossCommandResponse = await this.RecvMessage<SMSG_Boss_Command_Response>();
-            return smsgBossCommandResponse.ErrorCode;
-        }
-    }
-}

+ 0 - 50
CSharp/App/BossCommand/BCGetCharacterInfo.cs

@@ -1,50 +0,0 @@
-using System;
-using System.Runtime.Serialization;
-using System.Threading.Tasks;
-using BossBase;
-using Helper;
-using Logger;
-
-namespace BossCommand
-{
-    public class BCGetCharacterInfo: ABossCommand
-    {
-        public BCGetCharacterInfo(IMessageChannel iMessageChannel): base(iMessageChannel)
-        {
-        }
-
-        public int FindTypeIndex { get; set; }
-
-        public string FindType { get; set; }
-
-        public override async Task<object> DoAsync()
-        {
-            this.CommandString = string.Format("get_character_info {0} {1} ", this.FindTypeIndex,
-                    this.FindType);
-            this.SendMessage(new CMSG_Boss_Gm { Message = this.CommandString });
-            var smsgBossCommandResponse = await this.RecvMessage<SMSG_Boss_Command_Response>();
-            if (smsgBossCommandResponse.ErrorCode != ErrorCode.RESPONSE_SUCCESS)
-            {
-                Log.Trace("get character info fail, error code: {0}",
-                        smsgBossCommandResponse.ErrorCode);
-                return null;
-            }
-
-            var characterInfo = MongoHelper.FromJson<CharacterInfo>(smsgBossCommandResponse.Content);
-            return characterInfo;
-        }
-    }
-
-    [DataContract]
-    public class CharacterInfo
-    {
-        [DataMember(Order = 0, IsRequired = false)]
-        public string Account { get; set; }
-
-        [DataMember(Order = 1, IsRequired = false)]
-        public string Name { get; set; }
-
-        [DataMember(Order = 2, IsRequired = false)]
-        public UInt64 Guid { get; set; }
-    }
-}

+ 0 - 18
CSharp/App/BossCommand/BCReloadWorld.cs

@@ -1,18 +0,0 @@
-using System.Threading.Tasks;
-using BossBase;
-
-namespace BossCommand
-{
-    public class BCReloadWorld: ABossCommand
-    {
-        public BCReloadWorld(IMessageChannel iMessageChannel): base(iMessageChannel)
-        {
-        }
-
-        public override Task<object> DoAsync()
-        {
-            this.SendMessage(new CMSG_Boss_Gm { Message = "reload" });
-            return null;
-        }
-    }
-}

+ 0 - 26
CSharp/App/BossCommand/BCSendMail.cs

@@ -1,26 +0,0 @@
-using System.Threading.Tasks;
-using BossBase;
-using Helper;
-using Logger;
-
-namespace BossCommand
-{
-    public class BCSendMail: ABossCommand
-    {
-        public BossMail BossMail { get; set; }
-
-        public BCSendMail(IMessageChannel iMessageChannel): base(iMessageChannel)
-        {
-        }
-
-        public override async Task<object> DoAsync()
-        {
-            this.CommandString = string.Format("send_mail --json {0} ",
-                    MongoHelper.ToJson(this.BossMail));
-            Log.Trace(this.CommandString);
-            this.SendMessage(new CMSG_Boss_Gm { Message = this.CommandString });
-            var smsgBossCommandResponse = await this.RecvMessage<SMSG_Boss_Command_Response>();
-            return smsgBossCommandResponse.ErrorCode;
-        }
-    }
-}

+ 0 - 19
CSharp/App/BossCommand/BCServerInfo.cs

@@ -1,19 +0,0 @@
-using System.Threading.Tasks;
-using BossBase;
-
-namespace BossCommand
-{
-    public class BCServerInfo: ABossCommand
-    {
-        public BCServerInfo(IMessageChannel iMessageChannel): base(iMessageChannel)
-        {
-        }
-
-        public override async Task<object> DoAsync()
-        {
-            this.SendMessage(new CMSG_Boss_Gm { Message = "servers" });
-            var smsgBossServersInfo = await this.RecvMessage<SMSG_Boss_ServersInfo>();
-            return smsgBossServersInfo;
-        }
-    }
-}

+ 0 - 77
CSharp/App/BossCommand/BossCommand.csproj

@@ -1,77 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectGuid>{6C16281F-5550-4024-9504-295C63889E4F}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>BossCommand</RootNamespace>
-    <AssemblyName>BossCommand</AssemblyName>
-    <TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <RestorePackages>true</RestorePackages>
-    <TargetFrameworkProfile />
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>..\..\Bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>..\..\Bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Runtime.Serialization" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="ABossCommand.cs" />
-    <Compile Include="BCForbidLogin.cs" />
-    <Compile Include="BCCommand.cs" />
-    <Compile Include="BCGetCharacterInfo.cs" />
-    <Compile Include="BCSendMail.cs" />
-    <Compile Include="BCServerInfo.cs" />
-    <Compile Include="BCReloadWorld.cs" />
-    <Compile Include="BCForbiddenCharacter.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\..\Platform\Helper\Helper.csproj">
-      <Project>{24233CD5-A5DF-484B-A482-B79CB7A0D9CB}</Project>
-      <Name>Helper</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\..\Platform\Logger\Logger.csproj">
-      <Project>{72e16572-fc1f-4a9e-bc96-035417239298}</Project>
-      <Name>Logger</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\BossBase\BossBase.csproj">
-      <Project>{999910D3-4E7D-45B1-BD2C-47289CD4D1AB}</Project>
-      <Name>BossBase</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="App.config" />
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\nuget.targets" />
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
-       Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
-  </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-</Project>

+ 0 - 39
CSharp/App/BossCommand/Properties/AssemblyInfo.cs

@@ -1,39 +0,0 @@
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// 有关程序集的常规信息通过以下
-// 特性集控制。更改这些特性值可修改
-// 与程序集关联的信息。
-
-[assembly: AssemblyTitle("BossCommand")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("BossCommand")]
-[assembly: AssemblyCopyright("Copyright ©  2013")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// 将 ComVisible 设置为 false 使此程序集中的类型
-// 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型,
-// 则将该类型上的 ComVisible 特性设置为 true。
-
-[assembly: ComVisible(false)]
-
-// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
-
-[assembly: Guid("5a08753f-2724-4f97-a254-9d64f6faff13")]
-
-// 程序集的版本信息由下面四个值组成:
-//
-//      主版本
-//      次版本 
-//      生成号
-//      修订号
-//
-// 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
-// 方法是按如下所示使用“*”:
-// [assembly: AssemblyVersion("1.0.*")]
-
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]

+ 0 - 6
CSharp/App/Editor/Bootstrapper.cs

@@ -1,12 +1,9 @@
 using System.ComponentModel.Composition.Hosting;
 using System.Windows;
 using Infrastructure;
-using Login;
 using Microsoft.Practices.Prism.MefExtensions;
 using Microsoft.Practices.Prism.Regions;
-using Robot;
 using Tree;
-using WCFClient;
 
 namespace Editor
 {
@@ -17,9 +14,6 @@ namespace Editor
             this.AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof (Bootstrapper).Assembly));
             this.AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof (ViewExportAttribute).Assembly));
             this.AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof (TreeModule).Assembly));
-            this.AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof (RobotModule).Assembly));
-            this.AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof (LoginModule).Assembly));
-            this.AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof (WCFClientModule).Assembly));
         }
 
         protected override void InitializeShell()

+ 0 - 12
CSharp/App/Editor/Editor.csproj

@@ -134,22 +134,10 @@
       <Project>{48a2e149-0dac-41b4-bb54-dfbccd6d42b3}</Project>
       <Name>Infrastructure</Name>
     </ProjectReference>
-    <ProjectReference Include="..\Modules\Login\Login.csproj">
-      <Project>{5aa48f9a-455d-4cd8-a605-a3ac38283e60}</Project>
-      <Name>Login</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\Modules\Robot\Robot.csproj">
-      <Project>{5d6ecbcd-be14-4dcb-baec-57089748b164}</Project>
-      <Name>Robot</Name>
-    </ProjectReference>
     <ProjectReference Include="..\Modules\Tree\Tree.csproj">
       <Project>{6cd185d1-08e0-4729-a999-2d5b57ba8193}</Project>
       <Name>Tree</Name>
     </ProjectReference>
-    <ProjectReference Include="..\Modules\WCFClient\WCFClient.csproj">
-      <Project>{B07D70E7-F902-4F67-A486-B7AF27D6B813}</Project>
-      <Name>WCFClient</Name>
-    </ProjectReference>
   </ItemGroup>
   <ItemGroup>
     <None Include="App.config">

+ 0 - 154
CSharp/App/Modules/Login/Login.csproj

@@ -1,154 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectGuid>{5AA48F9A-455D-4CD8-A605-A3AC38283E60}</ProjectGuid>
-    <OutputType>library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Login</RootNamespace>
-    <AssemblyName>Login</AssemblyName>
-    <TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <WarningLevel>4</WarningLevel>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\..\</SolutionDir>
-    <RestorePackages>true</RestorePackages>
-    <TargetFrameworkProfile />
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>..\..\..\Bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>..\..\..\Bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="Microsoft.Practices.Prism.Composition">
-      <HintPath>..\..\..\packages\Prism.Composition.5.0.0\lib\NET45\Microsoft.Practices.Prism.Composition.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Practices.Prism.Interactivity, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\..\packages\Prism.Interactivity.5.0.0\lib\NET45\Microsoft.Practices.Prism.Interactivity.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Practices.Prism.MefExtensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\..\packages\Prism.MEFExtensions.5.0.0\lib\NET45\Microsoft.Practices.Prism.MefExtensions.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Practices.Prism.Mvvm">
-      <HintPath>..\..\..\packages\Prism.Mvvm.1.0.0\lib\net45\Microsoft.Practices.Prism.Mvvm.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Practices.Prism.Mvvm.Desktop">
-      <HintPath>..\..\..\packages\Prism.Mvvm.1.0.0\lib\net45\Microsoft.Practices.Prism.Mvvm.Desktop.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Practices.Prism.PubSubEvents">
-      <HintPath>..\..\..\packages\Prism.PubSubEvents.1.0.0\lib\portable-sl4+wp7+windows8+net40\Microsoft.Practices.Prism.PubSubEvents.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Practices.Prism.SharedInterfaces">
-      <HintPath>..\..\..\packages\Prism.Mvvm.1.0.0\lib\net45\Microsoft.Practices.Prism.SharedInterfaces.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.Practices.ServiceLocation">
-      <HintPath>..\..\..\packages\CommonServiceLocator.1.3\lib\portable-net4+sl5+netcore45+wpa81+wp8\Microsoft.Practices.ServiceLocation.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.ComponentModel.Composition" />
-    <Reference Include="System.ComponentModel.DataAnnotations" />
-    <Reference Include="System.Configuration" />
-    <Reference Include="System.Xml" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Xaml">
-      <RequiredTargetFramework>4.0</RequiredTargetFramework>
-    </Reference>
-    <Reference Include="WindowsBase" />
-    <Reference Include="PresentationCore" />
-    <Reference Include="PresentationFramework" />
-    <Reference Include="Xceed.Wpf.AvalonDock, Version=2.2.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\..\packages\Extended.Wpf.Toolkit.2.2.1\lib\net40\Xceed.Wpf.AvalonDock.dll</HintPath>
-    </Reference>
-    <Reference Include="Xceed.Wpf.AvalonDock.Themes.Aero, Version=2.2.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\..\packages\Extended.Wpf.Toolkit.2.2.1\lib\net40\Xceed.Wpf.AvalonDock.Themes.Aero.dll</HintPath>
-    </Reference>
-    <Reference Include="Xceed.Wpf.AvalonDock.Themes.Metro, Version=2.2.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\..\packages\Extended.Wpf.Toolkit.2.2.1\lib\net40\Xceed.Wpf.AvalonDock.Themes.Metro.dll</HintPath>
-    </Reference>
-    <Reference Include="Xceed.Wpf.AvalonDock.Themes.VS2010, Version=2.2.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\..\packages\Extended.Wpf.Toolkit.2.2.1\lib\net40\Xceed.Wpf.AvalonDock.Themes.VS2010.dll</HintPath>
-    </Reference>
-    <Reference Include="Xceed.Wpf.DataGrid, Version=2.2.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\..\packages\Extended.Wpf.Toolkit.2.2.1\lib\net40\Xceed.Wpf.DataGrid.dll</HintPath>
-    </Reference>
-    <Reference Include="Xceed.Wpf.Toolkit, Version=2.2.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\..\packages\Extended.Wpf.Toolkit.2.2.1\lib\net40\Xceed.Wpf.Toolkit.dll</HintPath>
-    </Reference>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="LoginViewModel.cs" />
-    <Page Include="LoginView.xaml">
-      <Generator>MSBuild:Compile</Generator>
-      <SubType>Designer</SubType>
-    </Page>
-    <Compile Include="LoginModule.cs" />
-    <Compile Include="LoginView.xaml.cs">
-      <DependentUpon>LoginView.xaml</DependentUpon>
-      <SubType>Code</SubType>
-    </Compile>
-  </ItemGroup>
-  <ItemGroup>
-    <AppDesigner Include="Properties\" />
-  </ItemGroup>
-  <ItemGroup>
-    <Folder Include="Properties\" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config">
-      <SubType>Designer</SubType>
-    </None>
-    <None Include="Packages.config" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\..\..\Platform\Logger\Logger.csproj">
-      <Project>{72e16572-fc1f-4a9e-bc96-035417239298}</Project>
-      <Name>Logger</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\..\BossBase\BossBase.csproj">
-      <Project>{999910D3-4E7D-45B1-BD2C-47289CD4D1AB}</Project>
-      <Name>BossBase</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\..\BossClient\BossClient.csproj">
-      <Project>{8650195A-7904-4EBC-9D81-B392A7E9B9B3}</Project>
-      <Name>BossClient</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\..\Infrastructure\Infrastructure.csproj">
-      <Project>{48a2e149-0dac-41b4-bb54-dfbccd6d42b3}</Project>
-      <Name>Infrastructure</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\nuget.targets" />
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
-       Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
-  </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-</Project>

+ 0 - 13
CSharp/App/Modules/Login/LoginModule.cs

@@ -1,13 +0,0 @@
-using Microsoft.Practices.Prism.MefExtensions.Modularity;
-using Microsoft.Practices.Prism.Modularity;
-
-namespace Login
-{
-    [ModuleExport(moduleType: typeof (LoginModule))]
-    public class LoginModule: IModule
-    {
-        public void Initialize()
-        {
-        }
-    }
-}

+ 0 - 33
CSharp/App/Modules/Login/LoginView.xaml

@@ -1,33 +0,0 @@
-<UserControl x:Class="Login.LoginView"
-		xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
-		xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-		xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
-		xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
-		xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit" 
-		xmlns:Login="clr-namespace:Login"
-		mc:Ignorable="d" 
-		d:DesignHeight="300" d:DesignWidth="300" 
-		d:DataContext="{d:DesignInstance Login:LoginViewModel}">
-	<Grid>
-		<xctk:ChildWindow Name="cwLoginWindow"  Visibility="{Binding LoginWindowVisiable}" 
-				HorizontalAlignment="Center" VerticalAlignment="Center" CloseButtonVisibility="Hidden">
-			<Grid Name="gridLogin"  Width="200" Height="120" >
-				<Grid.RowDefinitions>
-					<RowDefinition/>
-					<RowDefinition/>
-					<RowDefinition/>
-				</Grid.RowDefinitions>
-				<Grid.ColumnDefinitions>
-					<ColumnDefinition Width="51*"/>
-					<ColumnDefinition Width="149*"/>
-				</Grid.ColumnDefinitions>
-				<Label Content="帐号: " Grid.Row="0" Grid.Column="0" Margin="0,8"/>
-				<TextBox Text="{Binding Account}" Grid.Row="0" Grid.Column="1" Margin="0,8,0,8" />
-				<Label Content="密码: " Grid.Row="1" Grid.Column="0" Margin="0,8"/>
-				<TextBox Text="{Binding Password}" Grid.Row="1" Grid.Column="1" Margin="0,8,0,8" />
-				<Button Name="btnLogin" Content="登录" Click="btnLogin_Click" Grid.Row="2" Grid.Column="0" Margin="0,8" />
-				<Label Name="lblErrorInfo" Content="{Binding ErrorInfo}" Grid.Column="1" HorizontalAlignment="Left" Margin="10,7,0,0" Grid.Row="2" VerticalAlignment="Top" Width="129" Height="26"/>
-			</Grid>
-		</xctk:ChildWindow>
-	</Grid>
-</UserControl>

+ 0 - 36
CSharp/App/Modules/Login/LoginView.xaml.cs

@@ -1,36 +0,0 @@
-using System.ComponentModel.Composition;
-using System.Windows;
-using Infrastructure;
-
-namespace Login
-{
-    /// <summary>
-    /// LoginView.xaml 的交互逻辑
-    /// </summary>
-    [ViewExport(RegionName = "LoginRegion"), PartCreationPolicy(CreationPolicy.NonShared)]
-    public partial class LoginView
-    {
-        public LoginView()
-        {
-            this.InitializeComponent();
-        }
-
-        [Import]
-        private LoginViewModel ViewModel
-        {
-            get
-            {
-                return this.DataContext as LoginViewModel;
-            }
-            set
-            {
-                this.DataContext = value;
-            }
-        }
-
-        private async void btnLogin_Click(object sender, RoutedEventArgs e)
-        {
-            await this.ViewModel.Login();
-        }
-    }
-}

+ 0 - 122
CSharp/App/Modules/Login/LoginViewModel.cs

@@ -1,122 +0,0 @@
-using System;
-using System.ComponentModel.Composition;
-using System.Configuration;
-using System.Threading.Tasks;
-using System.Windows;
-using System.Windows.Threading;
-using BossBase;
-using Logger;
-using Microsoft.Practices.Prism.Mvvm;
-using Microsoft.Practices.Prism.PubSubEvents;
-
-namespace Login
-{
-    [Export(contractType: typeof (LoginViewModel)),
-     PartCreationPolicy(creationPolicy: CreationPolicy.NonShared)]
-    internal class LoginViewModel: BindableBase
-    {
-        private IEventAggregator EventAggregator { get; set; }
-        private string account = "";
-        private string password = "";
-        private string errorInfo = "";
-        private Visibility loginWindowVisiable = Visibility.Visible;
-        private readonly BossClient.BossClient bossClient = new BossClient.BossClient();
-
-        private readonly DispatcherTimer timer = new DispatcherTimer(DispatcherPriority.Normal)
-        {
-            Interval = new TimeSpan(0, 0, 0, 0, 50)
-        };
-
-        public Visibility LoginWindowVisiable
-        {
-            get
-            {
-                return this.loginWindowVisiable;
-            }
-            set
-            {
-                this.SetProperty(ref this.loginWindowVisiable, value);
-            }
-        }
-
-        public string Account
-        {
-            get
-            {
-                return this.account;
-            }
-            set
-            {
-                this.SetProperty(ref this.account, value);
-            }
-        }
-
-        public string Password
-        {
-            get
-            {
-                return this.password;
-            }
-            set
-            {
-                this.SetProperty(ref this.password, value);
-            }
-        }
-
-        public string ErrorInfo
-        {
-            get
-            {
-                return this.errorInfo;
-            }
-            set
-            {
-                this.SetProperty(ref this.errorInfo, value);
-            }
-        }
-
-        [ImportingConstructor]
-        public LoginViewModel(IEventAggregator eventAggregator)
-        {
-            this.EventAggregator = eventAggregator;
-            this.EventAggregator.GetEvent<ReLoginEvent>().Subscribe(this.OnReLoginEvent);
-            this.timer.Tick += delegate { this.bossClient.RunOnce(); };
-            this.timer.Start();
-        }
-
-        public void OnReLoginEvent(object obj)
-        {
-            this.LoginWindowVisiable = Visibility.Visible;
-        }
-
-        public async Task Login()
-        {
-            string ip = ConfigurationManager.AppSettings["IP"];
-            ushort port = UInt16.Parse(ConfigurationManager.AppSettings["Port"]);
-
-            if (this.Account == "")
-            {
-                this.Account = ConfigurationManager.AppSettings["Account"];
-            }
-            if (this.Password == "")
-            {
-                this.Password = ConfigurationManager.AppSettings["Password"];
-            }
-
-            try
-            {
-                await this.bossClient.Login(ip, port, this.Account, this.Password);
-            }
-            catch (Exception e)
-            {
-                this.ErrorInfo = "登录失败";
-                Log.Trace(e.ToString());
-                return;
-            }
-
-            this.LoginWindowVisiable = Visibility.Hidden;
-            this.EventAggregator.GetEvent<LoginOKEvent>()
-                    .Publish(this.bossClient.GateSession.IMessageChannel);
-        }
-    }
-}

+ 0 - 11
CSharp/App/Modules/Login/Packages.config

@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
-  <package id="CommonServiceLocator" version="1.3" targetFramework="net45" />
-  <package id="Extended.Wpf.Toolkit" version="2.2.1" targetFramework="net451" />
-  <package id="Prism" version="5.0.0" targetFramework="net45" />
-  <package id="Prism.Composition" version="5.0.0" targetFramework="net45" />
-  <package id="Prism.Interactivity" version="5.0.0" targetFramework="net45" />
-  <package id="Prism.MEFExtensions" version="5.0.0" targetFramework="net45" />
-  <package id="Prism.Mvvm" version="1.0.0" targetFramework="net45" />
-  <package id="Prism.PubSubEvents" version="1.0.0" targetFramework="net45" />
-</packages>

+ 0 - 11
CSharp/App/Modules/Login/app.config

@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
-  <runtime>
-    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
-      <dependentAssembly>
-        <assemblyIdentity name="Microsoft.Practices.ServiceLocation" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-1.3.0.0" newVersion="1.3.0.0" />
-      </dependentAssembly>
-    </assemblyBinding>
-  </runtime>
-<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" /></startup></configuration>

+ 0 - 11
CSharp/App/Modules/Robot/App.config

@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
-  <runtime>
-    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
-      <dependentAssembly>
-        <assemblyIdentity name="Microsoft.Practices.ServiceLocation" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-1.3.0.0" newVersion="1.3.0.0" />
-      </dependentAssembly>
-    </assemblyBinding>
-  </runtime>
-<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" /></startup></configuration>

+ 0 - 8
CSharp/App/Modules/Robot/ComboBoxForbiddenType.cs

@@ -1,8 +0,0 @@
-namespace Robot
-{
-    public class ComboBoxForbiddenType
-    {
-        public string Name { get; set; }
-        public string Value { get; set; }
-    }
-}

+ 0 - 28
CSharp/App/Modules/Robot/NumValidation.cs

@@ -1,28 +0,0 @@
-using System;
-using System.Globalization;
-using System.Windows.Controls;
-
-namespace Robot
-{
-    public class NumValidation: ValidationRule
-    {
-        public override ValidationResult Validate(object value, CultureInfo cultureInfo)
-        {
-            if ((string) value == "")
-            {
-                return new ValidationResult(true, null);
-            }
-            try
-            {
-                int.Parse((string) value);
-            }
-            catch (Exception e)
-            {
-                return new ValidationResult(false,
-                        string.Format("Illegal characters or {0}", e.Message));
-            }
-
-            return new ValidationResult(true, null);
-        }
-    }
-}

+ 0 - 12
CSharp/App/Modules/Robot/Packages.config

@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
-  <package id="CommonServiceLocator" version="1.3" targetFramework="net45" />
-  <package id="NPOI" version="2.0.6" targetFramework="net45" />
-  <package id="Prism" version="5.0.0" targetFramework="net45" />
-  <package id="Prism.Composition" version="5.0.0" targetFramework="net45" />
-  <package id="Prism.Interactivity" version="5.0.0" targetFramework="net45" />
-  <package id="Prism.MEFExtensions" version="5.0.0" targetFramework="net45" />
-  <package id="Prism.Mvvm" version="1.0.0" targetFramework="net45" />
-  <package id="Prism.PubSubEvents" version="1.0.0" targetFramework="net45" />
-  <package id="SharpZipLib" version="0.86.0" targetFramework="net45" />
-</packages>

+ 0 - 6
CSharp/App/Modules/Robot/Robot.cs

@@ -1,6 +0,0 @@
-namespace Robot
-{
-    public class Robot
-    {
-    }
-}

+ 0 - 157
CSharp/App/Modules/Robot/Robot.csproj

@@ -1,157 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectGuid>{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Modules.Robot</RootNamespace>
-    <AssemblyName>Robot</AssemblyName>
-    <TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\..\</SolutionDir>
-    <RestorePackages>true</RestorePackages>
-    <TargetFrameworkProfile />
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>..\..\..\Bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>..\..\..\Bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="ICSharpCode.SharpZipLib">
-      <HintPath>..\..\..\packages\NPOI.2.0.6\lib\net40\ICSharpCode.SharpZipLib.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Practices.Prism.Composition">
-      <HintPath>..\..\..\packages\Prism.Composition.5.0.0\lib\NET45\Microsoft.Practices.Prism.Composition.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Practices.Prism.Interactivity, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\..\packages\Prism.Interactivity.5.0.0\lib\NET45\Microsoft.Practices.Prism.Interactivity.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.Practices.Prism.MefExtensions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\..\packages\Prism.MEFExtensions.5.0.0\lib\NET45\Microsoft.Practices.Prism.MefExtensions.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Practices.Prism.Mvvm">
-      <HintPath>..\..\..\packages\Prism.Mvvm.1.0.0\lib\net45\Microsoft.Practices.Prism.Mvvm.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Practices.Prism.Mvvm.Desktop">
-      <HintPath>..\..\..\packages\Prism.Mvvm.1.0.0\lib\net45\Microsoft.Practices.Prism.Mvvm.Desktop.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Practices.Prism.PubSubEvents">
-      <HintPath>..\..\..\packages\Prism.PubSubEvents.1.0.0\lib\portable-sl4+wp7+windows8+net40\Microsoft.Practices.Prism.PubSubEvents.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.Practices.Prism.SharedInterfaces">
-      <HintPath>..\..\..\packages\Prism.Mvvm.1.0.0\lib\net45\Microsoft.Practices.Prism.SharedInterfaces.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.Practices.ServiceLocation">
-      <HintPath>..\..\..\packages\CommonServiceLocator.1.3\lib\portable-net4+sl5+netcore45+wpa81+wp8\Microsoft.Practices.ServiceLocation.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="NPOI, Version=2.0.6.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\..\packages\NPOI.2.0.6\lib\net40\NPOI.dll</HintPath>
-    </Reference>
-    <Reference Include="NPOI.OOXML">
-      <HintPath>..\..\..\packages\NPOI.2.0.6\lib\net40\NPOI.OOXML.dll</HintPath>
-    </Reference>
-    <Reference Include="NPOI.OpenXml4Net">
-      <HintPath>..\..\..\packages\NPOI.2.0.6\lib\net40\NPOI.OpenXml4Net.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="NPOI.OpenXmlFormats">
-      <HintPath>..\..\..\packages\NPOI.2.0.6\lib\net40\NPOI.OpenXmlFormats.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="PresentationCore" />
-    <Reference Include="PresentationFramework" />
-    <Reference Include="System" />
-    <Reference Include="System.ComponentModel.Composition" />
-    <Reference Include="System.ComponentModel.DataAnnotations" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Data.Entity" />
-    <Reference Include="System.Runtime.Serialization" />
-    <Reference Include="System.Xaml" />
-    <Reference Include="System.Xml" />
-    <Reference Include="WindowsBase" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="ComboBoxForbiddenType.cs" />
-    <Compile Include="NumValidation.cs" />
-    <Compile Include="Robot.cs" />
-    <Compile Include="RobotModule.cs" />
-    <Compile Include="RobotViewModel.cs" />
-    <Compile Include="RobotView.xaml.cs">
-      <DependentUpon>RobotView.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="ServerViewModel.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <Page Include="RobotView.xaml">
-      <SubType>Designer</SubType>
-      <Generator>MSBuild:Compile</Generator>
-    </Page>
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\..\..\Platform\Helper\Helper.csproj">
-      <Project>{24233cd5-a5df-484b-a482-b79cb7a0d9cb}</Project>
-      <Name>Helper</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\..\..\Platform\Logger\Logger.csproj">
-      <Project>{72e16572-fc1f-4a9e-bc96-035417239298}</Project>
-      <Name>Logger</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\..\BossBase\BossBase.csproj">
-      <Project>{999910d3-4e7d-45b1-bd2c-47289cd4d1ab}</Project>
-      <Name>BossBase</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\..\BossClient\BossClient.csproj">
-      <Project>{8650195A-7904-4EBC-9D81-B392A7E9B9B3}</Project>
-      <Name>BossClient</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\..\BossCommand\BossCommand.csproj">
-      <Project>{6c16281f-5550-4024-9504-295c63889e4f}</Project>
-      <Name>BossCommand</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\..\Infrastructure\Infrastructure.csproj">
-      <Project>{48a2e149-0dac-41b4-bb54-dfbccd6d42b3}</Project>
-      <Name>Infrastructure</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <Folder Include="Properties\" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="App.config" />
-    <None Include="Packages.config" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{508349B6-6B84-4DF5-91F0-309BEEBAD82D}" />
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\nuget.targets" />
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
-       Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
-  </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-</Project>

+ 0 - 13
CSharp/App/Modules/Robot/RobotModule.cs

@@ -1,13 +0,0 @@
-using Microsoft.Practices.Prism.MefExtensions.Modularity;
-using Microsoft.Practices.Prism.Modularity;
-
-namespace Robot
-{
-    [ModuleExport(moduleType: typeof (RobotModule))]
-    public class RobotModule: IModule
-    {
-        public void Initialize()
-        {
-        }
-    }
-}

+ 0 - 173
CSharp/App/Modules/Robot/RobotView.xaml

@@ -1,173 +0,0 @@
-<UserControl
-		xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
-		xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-		xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
-		xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
-		xmlns:Robot="clr-namespace:Robot"
-		x:Class="Robot.RobotView"
-		mc:Ignorable="d" d:DataContext="{d:DesignInstance {x:Type Robot:RobotViewModel}}" Height="723.134" Width="1218.806">
-	<UserControl.Resources>
-		<x:Array x:Key="ComboBoxForbiddenTypeKey" Type="Robot:ComboBoxForbiddenType">
-			<Robot:ComboBoxForbiddenType Name="帐号" Value="forbid_buy_item"/>
-			<Robot:ComboBoxForbiddenType Name="IP" Value="forbid_match"/>
-		</x:Array>
-		<x:Array x:Key="ComboBoxCharacterForbiddenTypeKey" Type="Robot:ComboBoxForbiddenType">
-			<Robot:ComboBoxForbiddenType Name="购买" Value="forbid_buy_item"/>
-			<Robot:ComboBoxForbiddenType Name="匹配" Value="forbid_match"/>
-			<Robot:ComboBoxForbiddenType Name="聊天" Value="forbid_chat"/>
-		</x:Array>
-
-		<Style x:Key="textBoxInError" TargetType="{x:Type TextBox}">
-			<Style.Triggers>
-				<Trigger Property="Validation.HasError" Value="true">
-					<Setter Property="ToolTip" Value="{Binding RelativeSource={x:Static RelativeSource.Self},
-                        Path=(Validation.Errors)[0].ErrorContent}"/>
-				</Trigger>
-			</Style.Triggers>
-		</Style>
-		<ControlTemplate x:Key="numberValidationTemplate">
-			<DockPanel>
-				<AdornedElementPlaceholder DockPanel.Dock="Left"/>
-				<TextBlock Foreground="Red" FontSize="20" >请输入数字!</TextBlock>
-			</DockPanel>
-		</ControlTemplate>
-	</UserControl.Resources>
-	<Grid>
-		<DockPanel x:Name="dock" Visibility="Visible">
-			<Menu DockPanel.Dock="Top" Margin="0,2" >
-				<MenuItem x:Name="menuLogin" Header="登录" Click="menuLogin_Click"/>
-				<MenuItem Header="服务器"  >
-					<MenuItem x:Name="menuServers" Header="显示服务器" Click="menuServers_Click"/>
-					<MenuItem x:Name="menuReload" Header="Reload World" Click="menuReload_Click"/>
-				</MenuItem>
-			</Menu>
-			<Grid>
-				<Canvas>
-					<TabControl Name="tcAll" Height="676" Width="867" Canvas.Top="10" >
-						<TabItem Header="服务器">
-							<Canvas Margin="0,0,0,9">
-								<ListBox Height="611" Width="112" SelectionMode="Multiple" ItemsSource="{Binding ServerInfos}" 
-										d:DataContext="{d:DesignInstance {x:Type Robot:RobotViewModel}}" 
-										BorderThickness="3" BorderBrush="BurlyWood" Canvas.Top="10" Canvas.Left="10" >
-									<ListBox.ItemTemplate>
-										<DataTemplate>
-											<Label Content="{Binding Name}" />
-										</DataTemplate>
-									</ListBox.ItemTemplate>
-								</ListBox>
-							</Canvas>
-						</TabItem>
-						<TabItem Header="帐号">
-							<Canvas>
-								<ComboBox Name="cbForbiddenLogin" Canvas.Left="12" Canvas.Top="10" Width="51" SelectedIndex="0"	
-										ItemsSource="{StaticResource ResourceKey=ComboBoxForbiddenTypeKey}" 
-										DisplayMemberPath="Name" SelectedValuePath="Value" />
-								<TextBox Name="tbForbiddenLoginContent" Height="23" Canvas.Left="71" Canvas.Top="10" Width="120"/>
-								<TextBox Name="tbForbiddenLoginTime" Height="23" Canvas.Left="241" Canvas.Top="10" Width="83" />
-								<Label Content="时间:" Canvas.Left="196" Canvas.Top="7"/>
-								<Button Content="禁止" Canvas.Left="12" Canvas.Top="39" Width="75" Click="btnForbiddenLogin_Click"/>
-								<Button Content="允许" Canvas.Left="102" Canvas.Top="39" Width="75" Click="btnAllowLogin_Click"/>
-							</Canvas>
-						</TabItem>
-						<TabItem Header="角色">
-							<Canvas Margin="0,0,-13,-9">
-								<GroupBox Header="角色信息" Canvas.Left="10" Height="639" Width="837" BorderBrush="BurlyWood">
-									<Canvas>
-										<ComboBox x:Name="cbFindType" SelectedIndex="{Binding FindTypeIndex}" Canvas.Left="32" Canvas.Top="23" Height="25">
-											<ComboBoxItem Content="帐 号"/>
-											<ComboBoxItem Content="名 字"/>
-											<ComboBoxItem Content="GUID"/>
-										</ComboBox>
-										<TextBox Width="166" Text="{Binding FindType}" Canvas.Left="88" Canvas.Top="23" Height="25"/>
-										<Button x:Name="btnFindPlayer" Content="查询" Click="btnFindPlayer_Click" Canvas.Left="261" Canvas.Top="23" Height="25"/>
-										<Label Content="帐 号:" HorizontalAlignment="Center" Canvas.Left="32" Canvas.Top="52" />
-										<TextBox Text="{Binding Account}" IsReadOnly="True" Height="25" Canvas.Left="88" Canvas.Top="53" Width="204"/>
-										<Label Content="名 字:" HorizontalAlignment="Center" Canvas.Left="32" Canvas.Top="83" />
-										<TextBox Text="{Binding Name}" IsReadOnly="True" Height="25" Canvas.Left="88" Canvas.Top="84" Width="204"/>
-										<Label Content="GUID:" HorizontalAlignment="Center" Canvas.Left="32" Canvas.Top="114" />
-										<TextBox Text="{Binding Guid}" IsReadOnly="True" Height="25" Canvas.Left="88" Canvas.Top="114" Width="204"/>
-										<TabControl Name="tcCharacterInfo" Height="447" Canvas.Top="160" Width="815" IsEnabled="False">
-											<TabItem Header="邮件">
-												<Canvas>
-													<GroupBox Header="发送邮件" Canvas.Left="10" Canvas.Top="10" Height="279" Width="323">
-														<Canvas>
-															<Label Content="主   题:" Canvas.Left="10" Canvas.Top="7" />
-															<TextBox Text="{Binding Subject}" Height="23" Canvas.Left="63" Canvas.Top="10" Width="154" />
-															<TextBox Text="{Binding Content}" Height="124" Canvas.Left="10" Canvas.Top="38" Width="291" />
-															<Label Content="邮件内容:" Canvas.Left="222" Canvas.Top="7"/>
-															<Label Content="免费元宝:" Canvas.Left="10" Canvas.Top="164"/>
-															<Label Content="银   两:" Canvas.Left="160" Canvas.Top="167" />
-															<Label Content="物品ID:" Canvas.Left="10" Canvas.Top="198"/>
-															<TextBox Height="23" Canvas.Left="63" Canvas.Top="167" Width="92" Validation.ErrorTemplate="{StaticResource numberValidationTemplate}" Style="{StaticResource textBoxInError}">
-																<Binding Path="FreeGold" UpdateSourceTrigger="PropertyChanged" >
-																	<Binding.ValidationRules>
-																		<Robot:NumValidation />
-																	</Binding.ValidationRules>
-																</Binding>
-															</TextBox>
-															<TextBox Height="23" Canvas.Left="213" Canvas.Top="167" Width="92" Validation.ErrorTemplate="{StaticResource numberValidationTemplate}" Style="{StaticResource textBoxInError}">
-																<Binding Path="Silver" UpdateSourceTrigger="PropertyChanged" >
-																	<Binding.ValidationRules>
-																		<Robot:NumValidation />
-																	</Binding.ValidationRules>
-																</Binding>
-															</TextBox>
-															<TextBox Height="23" Canvas.Left="64" Canvas.Top="198" Width="92" Validation.ErrorTemplate="{StaticResource numberValidationTemplate}" Style="{StaticResource textBoxInError}">
-																<Binding Path="ItemID" UpdateSourceTrigger="PropertyChanged" >
-																	<Binding.ValidationRules>
-																		<Robot:NumValidation />
-																	</Binding.ValidationRules>
-																</Binding>
-															</TextBox>
-															<TextBox Height="23" Canvas.Left="213" Canvas.Top="198" Width="92" Validation.ErrorTemplate="{StaticResource numberValidationTemplate}" Style="{StaticResource textBoxInError}">
-																<Binding Path="ItemCount" UpdateSourceTrigger="PropertyChanged" >
-																	<Binding.ValidationRules>
-																		<Robot:NumValidation />
-																	</Binding.ValidationRules>
-																</Binding>
-															</TextBox>
-															<Label Content="数   量:" Canvas.Left="160" Canvas.Top="198"/>
-															<Button Name="btnSendMail" Content="发送" Canvas.Left="10" Canvas.Top="229" Width="75" Click="btnSendMail_Click" />
-														</Canvas>
-													</GroupBox>
-												</Canvas>
-											</TabItem>
-											<TabItem Header="包裹">
-												<Grid/>
-											</TabItem>
-											<TabItem Header="BUFF">
-												<Grid/>
-											</TabItem>
-											<TabItem Header="装备">
-												<Canvas/>
-											</TabItem>
-										</TabControl>
-										<Button Name="btnForbidCharacter" IsEnabled="False" Content="禁止" Canvas.Left="495" Canvas.Top="55" Width="75" Click="btnForbidCharacter_Click" />
-										<Button Name="btnAllowCharacter" IsEnabled="False" Content="允许" Canvas.Left="495" Canvas.Top="25" Width="75" Click="btnAllowCharacter_Click" />
-										<ComboBox x:Name="cbForbiddenType" SelectedIndex="0" Canvas.Left="370" Canvas.Top="26" Width="120" 
-											ItemsSource="{StaticResource ResourceKey=ComboBoxCharacterForbiddenTypeKey}" 
-											DisplayMemberPath="Name" SelectedValuePath="Value" />
-										<TextBox x:Name="tbForbiddenTime" Height="23" Canvas.Left="370" Canvas.Top="55" Width="120"/>
-										<Label Content="类型:" Canvas.Left="319" Canvas.Top="26"/>
-										<Label Content="时间:" Canvas.Left="319" Canvas.Top="52"/>
-									</Canvas>
-								</GroupBox>
-							</Canvas>
-						</TabItem>
-						<TabItem Header="工具">
-							<Canvas>
-								<Button Content="excel转换" Canvas.Left="10" Canvas.Top="10" Width="75" Click="btnExcel_Click"/>
-								<Label Name="lblShowResult" Canvas.Left="90" Canvas.Top="10" Height="23" Width="54" RenderTransformOrigin="-0.35,0.567"/>
-							</Canvas>
-						</TabItem>
-					</TabControl>
-					<TextBox Name="tbLog" Height="648" Canvas.Left="882" TextWrapping="Wrap" Text="" 
-						Canvas.Top="38" Width="327" IsReadOnly="True" HorizontalScrollBarVisibility="Visible" 
-						VerticalScrollBarVisibility="Visible"/>
-					<TextBox Text="{Binding Command}" Height="38" Canvas.Left="882" TextWrapping="Wrap" Width="247" />
-					<Button Name="btnSendCommand" Content="发送" Canvas.Left="1134" Canvas.Top="10" Width="75" Click="btnSendCommand_Click"/>
-				</Canvas>
-			</Grid>
-		</DockPanel>
-	</Grid>
-</UserControl>

+ 0 - 186
CSharp/App/Modules/Robot/RobotView.xaml.cs

@@ -1,186 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.ComponentModel.Composition;
-using System.IO;
-using System.Windows;
-using Infrastructure;
-using NPOI.HSSF.UserModel;
-using NPOI.SS.UserModel;
-
-namespace Robot
-{
-    /// <summary>
-    /// RobotView.xaml 的交互逻辑
-    /// </summary>
-    [ViewExport(RegionName = "RobotRegion"), PartCreationPolicy(CreationPolicy.NonShared)]
-    public partial class RobotView
-    {
-        public RobotView()
-        {
-            this.InitializeComponent();
-        }
-
-        [Import]
-        private RobotViewModel ViewModel
-        {
-            get
-            {
-                return this.DataContext as RobotViewModel;
-            }
-            set
-            {
-                this.DataContext = value;
-            }
-        }
-
-        private void menuReload_Click(object sender, RoutedEventArgs e)
-        {
-            this.ViewModel.Reload();
-        }
-
-        private async void btnFindPlayer_Click(object sender, RoutedEventArgs e)
-        {
-            await this.ViewModel.GetCharacterInfo();
-            this.tcCharacterInfo.IsEnabled = true;
-            this.btnForbidCharacter.IsEnabled = true;
-            this.btnAllowCharacter.IsEnabled = true;
-            this.tbLog.AppendText(Environment.NewLine + this.ViewModel.ErrorInfo);
-            this.tbLog.ScrollToEnd();
-        }
-
-        private void menuLogin_Click(object sender, RoutedEventArgs e)
-        {
-            this.ViewModel.ReLogin();
-        }
-
-        private async void menuServers_Click(object sender, RoutedEventArgs e)
-        {
-            await this.ViewModel.Servers();
-            this.tcAll.SelectedIndex = 0;
-            this.tbLog.AppendText(Environment.NewLine + this.ViewModel.ErrorInfo);
-            this.tbLog.ScrollToEnd();
-        }
-
-        private async void btnForbidCharacter_Click(object sender, RoutedEventArgs e)
-        {
-            await
-                    this.ViewModel.ForbidCharacter(this.cbForbiddenType.SelectedValue.ToString(),
-                            this.tbForbiddenTime.Text);
-            this.tbLog.AppendText(Environment.NewLine + this.ViewModel.ErrorInfo);
-            this.tbLog.ScrollToEnd();
-        }
-
-        private async void btnAllowCharacter_Click(object sender, RoutedEventArgs e)
-        {
-            await
-                    this.ViewModel.ForbidCharacter(this.cbForbiddenType.SelectedValue.ToString(),
-                            "-1");
-            this.tbLog.AppendText(Environment.NewLine + this.ViewModel.ErrorInfo);
-            this.tbLog.ScrollToEnd();
-        }
-
-        private async void btnSendCommand_Click(object sender, RoutedEventArgs e)
-        {
-            await this.ViewModel.SendCommand();
-            this.tbLog.AppendText(Environment.NewLine + this.ViewModel.ErrorInfo);
-            this.tbLog.ScrollToEnd();
-        }
-
-        private async void btnForbiddenLogin_Click(object sender, RoutedEventArgs e)
-        {
-            await
-                    this.ViewModel.ForbiddenLogin(this.cbForbiddenLogin.SelectedValue.ToString(),
-                            this.tbForbiddenLoginContent.Text, this.tbForbiddenLoginTime.Text);
-            this.tbLog.AppendText(Environment.NewLine + this.ViewModel.ErrorInfo);
-            this.tbLog.ScrollToEnd();
-        }
-
-        private async void btnAllowLogin_Click(object sender, RoutedEventArgs e)
-        {
-            await
-                    this.ViewModel.ForbiddenLogin(this.cbForbiddenLogin.SelectedValue.ToString(),
-                            this.tbForbiddenLoginContent.Text, "-1");
-            this.tbLog.AppendText(Environment.NewLine + this.ViewModel.ErrorInfo);
-            this.tbLog.ScrollToEnd();
-        }
-
-        private async void btnSendMail_Click(object sender, RoutedEventArgs e)
-        {
-            await this.ViewModel.SendMail();
-            this.tbLog.AppendText(Environment.NewLine + this.ViewModel.ErrorInfo);
-            this.tbLog.ScrollToEnd();
-        }
-
-        private void btnExcel_Click(object sender, RoutedEventArgs e)
-        {
-            var dict = new Dictionary<string, int>
-            {
-                { "英雄令", 1 },
-                { "英雄令材料", 2 },
-                { "双倍", 3 },
-                { "会员", 4 },
-                { "聊天", 5 },
-                { "材料", 6 },
-                { "印记页", 7 },
-                { "血统页", 8 },
-                { "坐骑", 9 },
-                { "染色", 10 },
-                { "星之魂玉", 11 },
-                { "月之魂玉", 12 },
-                { "日之魂玉", 13 },
-                { "技能书", 14 },
-                { "混沌之玉", 15 },
-                { "战绩", 16 },
-                { "坐骑翅膀", 17 },
-                { "变身", 18 },
-                { "将星", 19 },
-                { "平台装备", 20 },
-                { "将星装备", 21 },
-                { "血魄", 22 },
-                { "装饰", 23 },
-                { "烟花", 24 },
-                { "英雄礼包", 25 },
-                { "套装", 26 },
-            };
-
-            HSSFWorkbook hssfWorkbook;
-            const string path = @"F:\MallItemProto.xls";
-            using (var file = new FileStream(path, FileMode.Open, FileAccess.Read))
-            {
-                hssfWorkbook = new HSSFWorkbook(file);
-            }
-            var sheet = hssfWorkbook.GetSheetAt(0);
-            IEnumerator rows = sheet.GetRowEnumerator();
-
-            const int nameIndex = 'Z' - 'A';
-            rows.MoveNext();
-            rows.MoveNext();
-            rows.MoveNext();
-            rows.MoveNext();
-            while (rows.MoveNext())
-            {
-                var row = (HSSFRow) rows.Current;
-                if (row.GetCell(nameIndex) == null)
-                {
-                    continue;
-                }
-                var name = row.GetCell(nameIndex).ToString();
-
-                if (!dict.ContainsKey(name))
-                {
-                    continue;
-                }
-
-                ICell cell = row.GetCell(nameIndex - 1) ?? row.CreateCell(nameIndex - 1);
-                cell.SetCellValue(dict[name].ToString());
-            }
-
-            using (var file = new FileStream(path, FileMode.Open, FileAccess.Write))
-            {
-                hssfWorkbook.Write(file);
-            }
-            this.lblShowResult.Content = "OK";
-        }
-    }
-}

+ 0 - 434
CSharp/App/Modules/Robot/RobotViewModel.cs

@@ -1,434 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.ComponentModel.Composition;
-using System.Globalization;
-using System.Threading.Tasks;
-using System.Windows;
-using BossBase;
-using BossCommand;
-using Helper;
-using Logger;
-using Microsoft.Practices.Prism.Mvvm;
-using Microsoft.Practices.Prism.PubSubEvents;
-
-namespace Robot
-{
-    [Export(contractType: typeof (RobotViewModel)),
-     PartCreationPolicy(creationPolicy: CreationPolicy.Shared)]
-    internal sealed class RobotViewModel: BindableBase, IDisposable
-    {
-        private readonly IEventAggregator eventAggregator;
-
-        private string errorInfo = "";
-        private int findTypeIndex;
-        private string account = "";
-        private string findType = "egametang@126.com";
-        private string name = "";
-        private string guid = "";
-        private string command = "";
-
-        private string subject = "";
-        private string content = "";
-        private string freeGold = "";
-        private string silver = "";
-        private string itemID = "";
-        private string itemCount = "";
-
-        private Visibility dockPanelVisiable = Visibility.Hidden;
-        private readonly BossClient.BossClient bossClient = new BossClient.BossClient();
-
-        private readonly ObservableCollection<ServerViewModel> serverInfos =
-                new ObservableCollection<ServerViewModel>();
-
-        public IMessageChannel IMessageChannel { get; set; }
-
-        public int FindTypeIndex
-        {
-            get
-            {
-                return this.findTypeIndex;
-            }
-            set
-            {
-                this.SetProperty(ref this.findTypeIndex, value);
-            }
-        }
-
-        public string FindType
-        {
-            get
-            {
-                return this.findType;
-            }
-            set
-            {
-                this.SetProperty(ref this.findType, value);
-            }
-        }
-
-        public Visibility DockPanelVisiable
-        {
-            get
-            {
-                return this.dockPanelVisiable;
-            }
-            set
-            {
-                this.SetProperty(ref this.dockPanelVisiable, value);
-            }
-        }
-
-        public ObservableCollection<ServerViewModel> ServerInfos
-        {
-            get
-            {
-                return this.serverInfos;
-            }
-        }
-
-        public string Account
-        {
-            get
-            {
-                return this.account;
-            }
-            set
-            {
-                this.SetProperty(ref this.account, value);
-            }
-        }
-
-        public string Name
-        {
-            get
-            {
-                return this.name;
-            }
-            set
-            {
-                this.SetProperty(ref this.name, value);
-            }
-        }
-
-        public string Guid
-        {
-            get
-            {
-                return this.guid;
-            }
-            set
-            {
-                this.SetProperty(ref this.guid, value);
-            }
-        }
-
-        public string ErrorInfo
-        {
-            get
-            {
-                return this.errorInfo;
-            }
-            set
-            {
-                this.SetProperty(ref this.errorInfo, value);
-            }
-        }
-
-        public string Command
-        {
-            get
-            {
-                return this.command;
-            }
-            set
-            {
-                this.SetProperty(ref this.command, value);
-            }
-        }
-
-        public string Subject
-        {
-            get
-            {
-                return this.subject;
-            }
-            set
-            {
-                this.SetProperty(ref this.subject, value);
-            }
-        }
-
-        public string Content
-        {
-            get
-            {
-                return this.content;
-            }
-            set
-            {
-                this.SetProperty(ref this.content, value);
-            }
-        }
-
-        public string FreeGold
-        {
-            get
-            {
-                return this.freeGold;
-            }
-            set
-            {
-                this.SetProperty(ref this.freeGold, value);
-            }
-        }
-
-        public string Silver
-        {
-            get
-            {
-                return this.silver;
-            }
-            set
-            {
-                this.SetProperty(ref this.silver, value);
-            }
-        }
-
-        public string ItemID
-        {
-            get
-            {
-                return this.itemID;
-            }
-            set
-            {
-                this.SetProperty(ref this.itemID, value);
-            }
-        }
-
-        public string ItemCount
-        {
-            get
-            {
-                return this.itemCount;
-            }
-            set
-            {
-                this.SetProperty(ref this.itemCount, value);
-            }
-        }
-
-        [ImportingConstructor]
-        public RobotViewModel(IEventAggregator eventAggregator)
-        {
-            this.eventAggregator = eventAggregator;
-            eventAggregator.GetEvent<LoginOKEvent>().Subscribe(this.OnLoginOKEvent);
-        }
-
-        ~RobotViewModel()
-        {
-            this.Disposing();
-        }
-
-        public void Dispose()
-        {
-            this.Disposing();
-            GC.SuppressFinalize(this);
-        }
-
-        private void Disposing()
-        {
-            this.bossClient.Dispose();
-        }
-
-        public void OnLoginOKEvent(IMessageChannel messageChannel)
-        {
-            this.DockPanelVisiable = Visibility.Visible;
-            this.IMessageChannel = messageChannel;
-        }
-
-        public void ReLogin()
-        {
-            this.DockPanelVisiable = Visibility.Hidden;
-            this.eventAggregator.GetEvent<ReLoginEvent>().Publish(null);
-        }
-
-        public void ShowErrorInfo(uint errorCode, string commandString)
-        {
-            if (errorCode == ErrorCode.RESPONSE_SUCCESS)
-            {
-                this.ErrorInfo = string.Format("{0} Succeed!", commandString);
-                return;
-            }
-            this.ErrorInfo = string.Format("{0} Fail, error code: {1}", commandString, errorCode);
-        }
-
-        public async Task Servers()
-        {
-            ABossCommand bossCommand = new BCServerInfo(this.IMessageChannel);
-            var result = await bossCommand.DoAsync();
-
-            var smsgBossServersInfo = result as SMSG_Boss_ServersInfo;
-            if (smsgBossServersInfo == null)
-            {
-                this.ErrorInfo = "查询服务器失败!";
-                return;
-            }
-
-            this.ServerInfos.Clear();
-            foreach (var nm in smsgBossServersInfo.Name)
-            {
-                this.ServerInfos.Add(new ServerViewModel { Name = nm });
-            }
-            this.ErrorInfo = "查询服务器成功!";
-        }
-
-        public void Reload()
-        {
-            ABossCommand bossCommand = new BCReloadWorld(this.IMessageChannel);
-            bossCommand.DoAsync();
-        }
-
-        public async Task GetCharacterInfo()
-        {
-            ABossCommand bossCommand = new BCGetCharacterInfo(this.IMessageChannel)
-            {
-                FindTypeIndex = this.FindTypeIndex,
-                FindType = this.FindType
-            };
-            var result = await bossCommand.DoAsync();
-            if (result == null)
-            {
-                this.ErrorInfo = string.Format("{0} Fail!", bossCommand.CommandString);
-                return;
-            }
-            var characterInfo = (CharacterInfo) result;
-
-            this.Account = characterInfo.Account;
-            this.Name = characterInfo.Name;
-            this.Guid = characterInfo.Guid.ToString();
-            this.ErrorInfo = string.Format("{0} Succeed!", bossCommand.CommandString);
-        }
-
-        public async Task ForbidCharacter(string forbiddenCommand, string forbiddenTime)
-        {
-            if (this.Guid == "")
-            {
-                this.ErrorInfo = "请先指定玩家";
-                return;
-            }
-            ulong ulongGuid = 0;
-            if (!ulong.TryParse(this.Guid, out ulongGuid))
-            {
-                this.ErrorInfo = "Guid必须是数字";
-                return;
-            }
-
-            int time = 0;
-            if (!int.TryParse(forbiddenTime, out time))
-            {
-                this.ErrorInfo = "时间请输入数字";
-                return;
-            }
-
-            ABossCommand bossCommand = new BCForbiddenCharacter(this.IMessageChannel)
-            {
-                Command = forbiddenCommand,
-                Guid = this.Guid,
-                ForbiddenTime = forbiddenTime
-            };
-            var result = await bossCommand.DoAsync();
-
-            var errorCode = (uint) result;
-
-            this.ShowErrorInfo(errorCode, bossCommand.CommandString);
-        }
-
-        public async Task ForbiddenLogin(
-                string forbiddenCommand, string forbiddenContent, string forbiddenTime)
-        {
-            int time = 0;
-            if (!int.TryParse(forbiddenTime, out time))
-            {
-                this.ErrorInfo = "时间请输入数字";
-                return;
-            }
-
-            ABossCommand bossCommand = new BCForbidLogin(this.IMessageChannel)
-            {
-                Command = forbiddenCommand,
-                Content = forbiddenContent,
-                ForbiddenLoginTime = forbiddenTime
-            };
-            var result = await bossCommand.DoAsync();
-
-            var errorCode = (uint) result;
-
-            this.ShowErrorInfo(errorCode, bossCommand.CommandString);
-        }
-
-        public async Task SendMail()
-        {
-            BossMail bossMail = null;
-            try
-            {
-                bossMail = new BossMail
-                {
-                    sender_name = "系统",
-                    receiver_guid = ulong.Parse(this.Guid),
-                    subject = this.Subject,
-                    content = this.Content,
-                    free_gold = uint.Parse(this.FreeGold),
-                    silver = uint.Parse(this.Silver),
-                    item_dict = new Dictionary<int, int>()
-                };
-
-                if (this.ItemID != "")
-                {
-                    bossMail.item_dict.Add(int.Parse(this.ItemID), int.Parse(this.ItemCount));
-                }
-            }
-            catch (Exception e)
-            {
-                Log.Trace(e.ToString());
-                this.ErrorInfo = "输入错误!";
-                return;
-            }
-
-            ABossCommand bossCommand = new BCSendMail(this.IMessageChannel) { BossMail = bossMail };
-
-            var result = await bossCommand.DoAsync();
-
-            var errorCode = (uint) result;
-
-            this.ShowErrorInfo(errorCode, bossCommand.CommandString);
-        }
-
-        public async Task SendCommand()
-        {
-            if (this.Command.StartsWith("gm ", true, CultureInfo.CurrentCulture))
-            {
-                this.Command = this.Command.Substring(3);
-            }
-            ABossCommand bossCommand = new BCCommand(this.IMessageChannel)
-            {
-                Command = this.Command
-            };
-            string commandString = this.Command;
-            object result = null;
-            try
-            {
-                result = await bossCommand.DoAsync();
-            }
-            catch (Exception e)
-            {
-                Log.Trace(e.ToString());
-                return;
-            }
-            var smsgBossCommandResponse = (SMSG_Boss_Command_Response) result;
-            this.ErrorInfo = string.Format(" send command: {0}, error code: {1}", commandString,
-                    MongoHelper.ToJson(smsgBossCommandResponse));
-        }
-    }
-}

+ 0 - 24
CSharp/App/Modules/Robot/ServerViewModel.cs

@@ -1,24 +0,0 @@
-using System.Runtime.Serialization;
-using Microsoft.Practices.Prism.Mvvm;
-
-namespace Robot
-{
-    [DataContract]
-    public class ServerViewModel: BindableBase
-    {
-        [DataMember(Order = 1, IsRequired = true)]
-        private string name;
-
-        public string Name
-        {
-            get
-            {
-                return this.name;
-            }
-            set
-            {
-                this.SetProperty(ref this.name, value);
-            }
-        }
-    }
-}

+ 0 - 1
CSharp/App/Modules/Tree/AllTreeViewModel.cs

@@ -63,7 +63,6 @@ namespace Tree
 
         public void Save(string file)
         {
-            
         }
 
         public void New(TreeViewModel treeViewModel)

+ 3 - 1
CSharp/App/Modules/Tree/TreeViewModel.cs

@@ -29,7 +29,9 @@ namespace Tree
         {
             foreach (TreeNodeData treeNodeData in treeNodeDatas)
             {
-                TreeNodeViewModel treeNodeViewModel = new TreeNodeViewModel(this, treeNodeData);       
+                TreeNodeViewModel treeNodeViewModel = new TreeNodeViewModel(this, treeNodeData);
+                this.treeNodes.Add(treeNodeViewModel);
+                this.treeNodeDict[treeNodeViewModel.Id] = treeNodeViewModel;
             }
         }
 

+ 0 - 11
CSharp/App/Modules/WCFClient/App.config

@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
-  <runtime>
-    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
-      <dependentAssembly>
-        <assemblyIdentity name="Microsoft.Practices.ServiceLocation" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
-        <bindingRedirect oldVersion="0.0.0.0-1.3.0.0" newVersion="1.3.0.0"/>
-      </dependentAssembly>
-    </assemblyBinding>
-  </runtime>
-<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1"/></startup></configuration>

+ 0 - 10
CSharp/App/Modules/WCFClient/Packages.config

@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
-  <package id="CommonServiceLocator" version="1.3" targetFramework="net45" />
-  <package id="Prism" version="5.0.0" targetFramework="net45" />
-  <package id="Prism.Composition" version="5.0.0" targetFramework="net45" />
-  <package id="Prism.Interactivity" version="5.0.0" targetFramework="net45" />
-  <package id="Prism.MEFExtensions" version="5.0.0" targetFramework="net45" />
-  <package id="Prism.Mvvm" version="1.0.0" targetFramework="net45" />
-  <package id="Prism.PubSubEvents" version="1.0.0" targetFramework="net45" />
-</packages>

+ 0 - 53
CSharp/App/Modules/WCFClient/Properties/AssemblyInfo.cs

@@ -1,53 +0,0 @@
-using System.Reflection;
-using System.Runtime.InteropServices;
-using System.Windows;
-
-// 有关程序集的常规信息通过以下
-// 特性集控制。更改这些特性值可修改
-// 与程序集关联的信息。
-
-[assembly: AssemblyTitle("WCFClient")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("Microsoft")]
-[assembly: AssemblyProduct("WCFClient")]
-[assembly: AssemblyCopyright("Copyright © Microsoft 2013")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// 将 ComVisible 设置为 false 使此程序集中的类型
-// 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型,
-// 则将该类型上的 ComVisible 特性设置为 true。
-
-[assembly: ComVisible(false)]
-
-//若要开始生成可本地化的应用程序,请在 
-//<PropertyGroup> 中的 .csproj 文件中
-//设置 <UICulture>CultureYouAreCodingWith</UICulture>。例如,如果您在源文件中
-//使用的是美国英语,请将 <UICulture> 设置为 en-US。然后取消
-//对以下 NeutralResourceLanguage 特性的注释。更新
-//以下行中的“en-US”以匹配项目文件中的 UICulture 设置。
-
-//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
-
-[assembly: ThemeInfo(ResourceDictionaryLocation.None, //主题特定资源词典所处位置
-        //(在页面或应用程序资源词典中 
-        // 未找到某个资源的情况下使用)
-        ResourceDictionaryLocation.SourceAssembly //常规资源词典所处位置
-        //(在页面、应用程序或任何主题特定资源词典中 
-        // 未找到某个资源的情况下使用)
-        )]
-
-// 程序集的版本信息由下面四个值组成:
-//
-//      主版本
-//      次版本 
-//      生成号
-//      修订号
-//
-// 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
-// 方法是按如下所示使用“*”:
-// [assembly: AssemblyVersion("1.0.*")]
-
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]

+ 0 - 129
CSharp/App/Modules/WCFClient/WCFClient.csproj

@@ -1,129 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectGuid>{B07D70E7-F902-4F67-A486-B7AF27D6B813}</ProjectGuid>
-    <OutputType>library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>WCFClient</RootNamespace>
-    <AssemblyName>WCFClient</AssemblyName>
-    <TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <WarningLevel>4</WarningLevel>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\..\</SolutionDir>
-    <RestorePackages>true</RestorePackages>
-    <TargetFrameworkProfile />
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>..\..\..\Bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>..\..\..\Bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="Microsoft.Practices.Prism.Composition">
-      <HintPath>..\..\..\packages\Prism.Composition.5.0.0\lib\NET45\Microsoft.Practices.Prism.Composition.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.Practices.Prism.Interactivity">
-      <HintPath>..\..\..\packages\Prism.Interactivity.5.0.0\lib\NET45\Microsoft.Practices.Prism.Interactivity.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.Practices.Prism.MefExtensions">
-      <HintPath>..\..\..\packages\Prism.MEFExtensions.5.0.0\lib\NET45\Microsoft.Practices.Prism.MefExtensions.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.Practices.Prism.Mvvm">
-      <HintPath>..\..\..\packages\Prism.Mvvm.1.0.0\lib\net45\Microsoft.Practices.Prism.Mvvm.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.Practices.Prism.Mvvm.Desktop">
-      <HintPath>..\..\..\packages\Prism.Mvvm.1.0.0\lib\net45\Microsoft.Practices.Prism.Mvvm.Desktop.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.Practices.Prism.PubSubEvents">
-      <HintPath>..\..\..\packages\Prism.PubSubEvents.1.0.0\lib\portable-sl4+wp7+windows8+net40\Microsoft.Practices.Prism.PubSubEvents.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.Practices.Prism.SharedInterfaces">
-      <HintPath>..\..\..\packages\Prism.Mvvm.1.0.0\lib\net45\Microsoft.Practices.Prism.SharedInterfaces.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="Microsoft.Practices.ServiceLocation">
-      <HintPath>..\..\..\packages\CommonServiceLocator.1.3\lib\portable-net4+sl5+netcore45+wpa81+wp8\Microsoft.Practices.ServiceLocation.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.ComponentModel.Composition" />
-    <Reference Include="System.Configuration" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Runtime.Serialization" />
-    <Reference Include="System.ServiceModel" />
-    <Reference Include="System.Xml" />
-    <Reference Include="Microsoft.CSharp" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Xml.Linq" />
-    <Reference Include="System.Data.DataSetExtensions" />
-    <Reference Include="System.Xaml">
-      <RequiredTargetFramework>4.0</RequiredTargetFramework>
-    </Reference>
-    <Reference Include="UIAutomationProvider" />
-    <Reference Include="UIAutomationTypes" />
-    <Reference Include="WindowsBase" />
-    <Reference Include="PresentationCore" />
-    <Reference Include="PresentationFramework" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="WCFClientViewModel.cs" />
-    <Page Include="WCFClientView.xaml">
-      <Generator>MSBuild:Compile</Generator>
-      <SubType>Designer</SubType>
-    </Page>
-    <Compile Include="WCFClientModule.cs" />
-    <Compile Include="WCFClientView.xaml.cs">
-      <DependentUpon>WCFClientView.xaml</DependentUpon>
-      <SubType>Code</SubType>
-    </Compile>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="Properties\AssemblyInfo.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <None Include="App.config" />
-    <None Include="Packages.config" />
-    <AppDesigner Include="Properties\" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\..\..\Platform\Logger\Logger.csproj">
-      <Project>{72e16572-fc1f-4a9e-bc96-035417239298}</Project>
-      <Name>Logger</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\..\Infrastructure\Infrastructure.csproj">
-      <Project>{48A2E149-0DAC-41B4-BB54-DFBCCD6D42B3}</Project>
-      <Name>Infrastructure</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
-       Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
-  </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-</Project>

+ 0 - 13
CSharp/App/Modules/WCFClient/WCFClientModule.cs

@@ -1,13 +0,0 @@
-using Microsoft.Practices.Prism.MefExtensions.Modularity;
-using Microsoft.Practices.Prism.Modularity;
-
-namespace WCFClient
-{
-    [ModuleExport(moduleType: typeof (WCFClientModule))]
-    public class WCFClientModule: IModule
-    {
-        public void Initialize()
-        {
-        }
-    }
-}

+ 0 - 12
CSharp/App/Modules/WCFClient/WCFClientView.xaml

@@ -1,12 +0,0 @@
-<UserControl
-		xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
-		xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-		xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
-		xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
-		x:Class="WCFClient.WCFClientView" 
-		mc:Ignorable="d" 
-		d:DesignHeight="300" d:DesignWidth="300">
-	<Grid>
-		<Button Content="Button" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/>
-	</Grid>
-</UserControl>

+ 0 - 22
CSharp/App/Modules/WCFClient/WCFClientView.xaml.cs

@@ -1,22 +0,0 @@
-using System.ComponentModel.Composition;
-using System.Windows;
-using Infrastructure;
-
-namespace WCFClient
-{
-    /// <summary>
-    /// WCFClientView.xaml 的交互逻辑
-    /// </summary>
-    [ViewExport(RegionName = "WCFClientRegion"), PartCreationPolicy(CreationPolicy.NonShared)]
-    public partial class WCFClientView
-    {
-        public WCFClientView()
-        {
-            this.InitializeComponent();
-        }
-
-        private void Button_Click(object sender, RoutedEventArgs e)
-        {
-        }
-    }
-}

+ 0 - 10
CSharp/App/Modules/WCFClient/WCFClientViewModel.cs

@@ -1,10 +0,0 @@
-using System.ComponentModel.Composition;
-
-namespace WCFClient
-{
-    [Export(contractType: typeof (WCFClientViewModel)),
-     PartCreationPolicy(creationPolicy: CreationPolicy.NonShared)]
-    public class WCFClientViewModel
-    {
-    }
-}

+ 0 - 120
CSharp/CSharp.sln

@@ -18,8 +18,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "App", "App", "{6E9D97F0-424
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Editor", "App\Editor\Editor.csproj", "{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Robot", "App\Modules\Robot\Robot.csproj", "{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}"
-EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hooks", "Platform\Hooks\Hooks.csproj", "{3A98B35C-DEA8-489C-9203-263FFB6B065D}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Infrastructure", "App\Infrastructure\Infrastructure.csproj", "{48A2E149-0DAC-41B4-BB54-DFBCCD6D42B3}"
@@ -34,26 +32,12 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ENet", "Platform\ENet\ENet.
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ENetTest", "Platform\ENetTest\ENetTest.csproj", "{901A8E5C-C4C6-4C3C-8E18-068D75119F5D}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BossClient", "App\BossClient\BossClient.csproj", "{8650195A-7904-4EBC-9D81-B392A7E9B9B3}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Login", "App\Modules\Login\Login.csproj", "{5AA48F9A-455D-4CD8-A605-A3AC38283E60}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BossBase", "App\BossBase\BossBase.csproj", "{999910D3-4E7D-45B1-BD2C-47289CD4D1AB}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BossCommand", "App\BossCommand\BossCommand.csproj", "{6C16281F-5550-4024-9504-295C63889E4F}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WCFClient", "App\Modules\WCFClient\WCFClient.csproj", "{B07D70E7-F902-4F67-A486-B7AF27D6B813}"
-EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Game", "Game", "{D0CC1FF4-2747-4278-A51F-BE9AA959175B}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BehaviorTree", "Game\BehaviorTree\BehaviorTree.csproj", "{C4E7A34A-095C-4983-AB63-FC2D20CD6824}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BehaviorTreeTest", "Game\BehaviorTreeTest\BehaviorTreeTest.csproj", "{DD6F4735-E8E2-4F10-AE2B-434AB3A40236}"
-EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "World", "Game\World\World.csproj", "{CBEDBE33-A883-4BFA-AE0A-8B3573F09BD0}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WorldTest", "Game\WorldTest\WorldTest.csproj", "{F2BEB8B2-0D9B-4CD9-A4BD-AE8E00903A67}"
-EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Logic", "Game\Logic\Logic.csproj", "{CB5BCF0A-4741-477A-94C6-49ECA782555F}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Component", "Game\Component\Component.csproj", "{0FA529D1-D0A9-4A8E-90F5-117CE80F2EDE}"
@@ -96,18 +80,6 @@ Global
 		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}.Release|Win32.Build.0 = Release|x86
 		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}.Release|x86.ActiveCfg = Release|x86
 		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}.Release|x86.Build.0 = Release|x86
-		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
-		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
-		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Debug|Win32.ActiveCfg = Debug|Any CPU
-		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Release|Any CPU.Build.0 = Release|Any CPU
-		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
-		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Release|Mixed Platforms.Build.0 = Release|Any CPU
-		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Release|Win32.ActiveCfg = Release|Any CPU
-		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Release|x86.ActiveCfg = Release|Any CPU
 		{3A98B35C-DEA8-489C-9203-263FFB6B065D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{3A98B35C-DEA8-489C-9203-263FFB6B065D}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{3A98B35C-DEA8-489C-9203-263FFB6B065D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
@@ -182,66 +154,6 @@ Global
 		{901A8E5C-C4C6-4C3C-8E18-068D75119F5D}.Release|Mixed Platforms.Build.0 = Release|Any CPU
 		{901A8E5C-C4C6-4C3C-8E18-068D75119F5D}.Release|Win32.ActiveCfg = Release|Any CPU
 		{901A8E5C-C4C6-4C3C-8E18-068D75119F5D}.Release|x86.ActiveCfg = Release|Any CPU
-		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
-		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
-		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Debug|Win32.ActiveCfg = Debug|Any CPU
-		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Release|Any CPU.Build.0 = Release|Any CPU
-		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
-		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Release|Mixed Platforms.Build.0 = Release|Any CPU
-		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Release|Win32.ActiveCfg = Release|Any CPU
-		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Release|x86.ActiveCfg = Release|Any CPU
-		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
-		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
-		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Debug|Win32.ActiveCfg = Debug|Any CPU
-		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Release|Any CPU.Build.0 = Release|Any CPU
-		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
-		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Release|Mixed Platforms.Build.0 = Release|Any CPU
-		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Release|Win32.ActiveCfg = Release|Any CPU
-		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Release|x86.ActiveCfg = Release|Any CPU
-		{999910D3-4E7D-45B1-BD2C-47289CD4D1AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{999910D3-4E7D-45B1-BD2C-47289CD4D1AB}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{999910D3-4E7D-45B1-BD2C-47289CD4D1AB}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
-		{999910D3-4E7D-45B1-BD2C-47289CD4D1AB}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
-		{999910D3-4E7D-45B1-BD2C-47289CD4D1AB}.Debug|Win32.ActiveCfg = Debug|Any CPU
-		{999910D3-4E7D-45B1-BD2C-47289CD4D1AB}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{999910D3-4E7D-45B1-BD2C-47289CD4D1AB}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{999910D3-4E7D-45B1-BD2C-47289CD4D1AB}.Release|Any CPU.Build.0 = Release|Any CPU
-		{999910D3-4E7D-45B1-BD2C-47289CD4D1AB}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
-		{999910D3-4E7D-45B1-BD2C-47289CD4D1AB}.Release|Mixed Platforms.Build.0 = Release|Any CPU
-		{999910D3-4E7D-45B1-BD2C-47289CD4D1AB}.Release|Win32.ActiveCfg = Release|Any CPU
-		{999910D3-4E7D-45B1-BD2C-47289CD4D1AB}.Release|x86.ActiveCfg = Release|Any CPU
-		{6C16281F-5550-4024-9504-295C63889E4F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{6C16281F-5550-4024-9504-295C63889E4F}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{6C16281F-5550-4024-9504-295C63889E4F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
-		{6C16281F-5550-4024-9504-295C63889E4F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
-		{6C16281F-5550-4024-9504-295C63889E4F}.Debug|Win32.ActiveCfg = Debug|Any CPU
-		{6C16281F-5550-4024-9504-295C63889E4F}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{6C16281F-5550-4024-9504-295C63889E4F}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{6C16281F-5550-4024-9504-295C63889E4F}.Release|Any CPU.Build.0 = Release|Any CPU
-		{6C16281F-5550-4024-9504-295C63889E4F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
-		{6C16281F-5550-4024-9504-295C63889E4F}.Release|Mixed Platforms.Build.0 = Release|Any CPU
-		{6C16281F-5550-4024-9504-295C63889E4F}.Release|Win32.ActiveCfg = Release|Any CPU
-		{6C16281F-5550-4024-9504-295C63889E4F}.Release|x86.ActiveCfg = Release|Any CPU
-		{B07D70E7-F902-4F67-A486-B7AF27D6B813}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{B07D70E7-F902-4F67-A486-B7AF27D6B813}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{B07D70E7-F902-4F67-A486-B7AF27D6B813}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
-		{B07D70E7-F902-4F67-A486-B7AF27D6B813}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
-		{B07D70E7-F902-4F67-A486-B7AF27D6B813}.Debug|Win32.ActiveCfg = Debug|Any CPU
-		{B07D70E7-F902-4F67-A486-B7AF27D6B813}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{B07D70E7-F902-4F67-A486-B7AF27D6B813}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{B07D70E7-F902-4F67-A486-B7AF27D6B813}.Release|Any CPU.Build.0 = Release|Any CPU
-		{B07D70E7-F902-4F67-A486-B7AF27D6B813}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
-		{B07D70E7-F902-4F67-A486-B7AF27D6B813}.Release|Mixed Platforms.Build.0 = Release|Any CPU
-		{B07D70E7-F902-4F67-A486-B7AF27D6B813}.Release|Win32.ActiveCfg = Release|Any CPU
-		{B07D70E7-F902-4F67-A486-B7AF27D6B813}.Release|x86.ActiveCfg = Release|Any CPU
 		{C4E7A34A-095C-4983-AB63-FC2D20CD6824}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{C4E7A34A-095C-4983-AB63-FC2D20CD6824}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{C4E7A34A-095C-4983-AB63-FC2D20CD6824}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
@@ -254,18 +166,6 @@ Global
 		{C4E7A34A-095C-4983-AB63-FC2D20CD6824}.Release|Mixed Platforms.Build.0 = Release|Any CPU
 		{C4E7A34A-095C-4983-AB63-FC2D20CD6824}.Release|Win32.ActiveCfg = Release|Any CPU
 		{C4E7A34A-095C-4983-AB63-FC2D20CD6824}.Release|x86.ActiveCfg = Release|Any CPU
-		{DD6F4735-E8E2-4F10-AE2B-434AB3A40236}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{DD6F4735-E8E2-4F10-AE2B-434AB3A40236}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{DD6F4735-E8E2-4F10-AE2B-434AB3A40236}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
-		{DD6F4735-E8E2-4F10-AE2B-434AB3A40236}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
-		{DD6F4735-E8E2-4F10-AE2B-434AB3A40236}.Debug|Win32.ActiveCfg = Debug|Any CPU
-		{DD6F4735-E8E2-4F10-AE2B-434AB3A40236}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{DD6F4735-E8E2-4F10-AE2B-434AB3A40236}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{DD6F4735-E8E2-4F10-AE2B-434AB3A40236}.Release|Any CPU.Build.0 = Release|Any CPU
-		{DD6F4735-E8E2-4F10-AE2B-434AB3A40236}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
-		{DD6F4735-E8E2-4F10-AE2B-434AB3A40236}.Release|Mixed Platforms.Build.0 = Release|Any CPU
-		{DD6F4735-E8E2-4F10-AE2B-434AB3A40236}.Release|Win32.ActiveCfg = Release|Any CPU
-		{DD6F4735-E8E2-4F10-AE2B-434AB3A40236}.Release|x86.ActiveCfg = Release|Any CPU
 		{CBEDBE33-A883-4BFA-AE0A-8B3573F09BD0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{CBEDBE33-A883-4BFA-AE0A-8B3573F09BD0}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{CBEDBE33-A883-4BFA-AE0A-8B3573F09BD0}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
@@ -278,18 +178,6 @@ Global
 		{CBEDBE33-A883-4BFA-AE0A-8B3573F09BD0}.Release|Mixed Platforms.Build.0 = Release|Any CPU
 		{CBEDBE33-A883-4BFA-AE0A-8B3573F09BD0}.Release|Win32.ActiveCfg = Release|Any CPU
 		{CBEDBE33-A883-4BFA-AE0A-8B3573F09BD0}.Release|x86.ActiveCfg = Release|Any CPU
-		{F2BEB8B2-0D9B-4CD9-A4BD-AE8E00903A67}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{F2BEB8B2-0D9B-4CD9-A4BD-AE8E00903A67}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{F2BEB8B2-0D9B-4CD9-A4BD-AE8E00903A67}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
-		{F2BEB8B2-0D9B-4CD9-A4BD-AE8E00903A67}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
-		{F2BEB8B2-0D9B-4CD9-A4BD-AE8E00903A67}.Debug|Win32.ActiveCfg = Debug|Any CPU
-		{F2BEB8B2-0D9B-4CD9-A4BD-AE8E00903A67}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{F2BEB8B2-0D9B-4CD9-A4BD-AE8E00903A67}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{F2BEB8B2-0D9B-4CD9-A4BD-AE8E00903A67}.Release|Any CPU.Build.0 = Release|Any CPU
-		{F2BEB8B2-0D9B-4CD9-A4BD-AE8E00903A67}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
-		{F2BEB8B2-0D9B-4CD9-A4BD-AE8E00903A67}.Release|Mixed Platforms.Build.0 = Release|Any CPU
-		{F2BEB8B2-0D9B-4CD9-A4BD-AE8E00903A67}.Release|Win32.ActiveCfg = Release|Any CPU
-		{F2BEB8B2-0D9B-4CD9-A4BD-AE8E00903A67}.Release|x86.ActiveCfg = Release|Any CPU
 		{CB5BCF0A-4741-477A-94C6-49ECA782555F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{CB5BCF0A-4741-477A-94C6-49ECA782555F}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{CB5BCF0A-4741-477A-94C6-49ECA782555F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
@@ -381,22 +269,14 @@ Global
 	GlobalSection(NestedProjects) = preSolution
 		{C4C64188-4FAE-4CC3-A9E6-D9D4AF7429B6} = {6E9D97F0-4243-452E-B832-1A855B8118EB}
 		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0} = {6E9D97F0-4243-452E-B832-1A855B8118EB}
-		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164} = {C4C64188-4FAE-4CC3-A9E6-D9D4AF7429B6}
 		{3A98B35C-DEA8-489C-9203-263FFB6B065D} = {ADBF5F67-B480-4A93-9D50-C81856FC61A9}
 		{48A2E149-0DAC-41B4-BB54-DFBCCD6D42B3} = {6E9D97F0-4243-452E-B832-1A855B8118EB}
 		{24233CD5-A5DF-484B-A482-B79CB7A0D9CB} = {ADBF5F67-B480-4A93-9D50-C81856FC61A9}
 		{C9992B7C-313E-4C9F-A954-640D01EDFB58} = {ADBF5F67-B480-4A93-9D50-C81856FC61A9}
 		{D0B4CFAC-A368-4742-9863-68776CFA9938} = {ADBF5F67-B480-4A93-9D50-C81856FC61A9}
 		{901A8E5C-C4C6-4C3C-8E18-068D75119F5D} = {ADBF5F67-B480-4A93-9D50-C81856FC61A9}
-		{8650195A-7904-4EBC-9D81-B392A7E9B9B3} = {6E9D97F0-4243-452E-B832-1A855B8118EB}
-		{5AA48F9A-455D-4CD8-A605-A3AC38283E60} = {C4C64188-4FAE-4CC3-A9E6-D9D4AF7429B6}
-		{999910D3-4E7D-45B1-BD2C-47289CD4D1AB} = {6E9D97F0-4243-452E-B832-1A855B8118EB}
-		{6C16281F-5550-4024-9504-295C63889E4F} = {6E9D97F0-4243-452E-B832-1A855B8118EB}
-		{B07D70E7-F902-4F67-A486-B7AF27D6B813} = {C4C64188-4FAE-4CC3-A9E6-D9D4AF7429B6}
 		{C4E7A34A-095C-4983-AB63-FC2D20CD6824} = {D0CC1FF4-2747-4278-A51F-BE9AA959175B}
-		{DD6F4735-E8E2-4F10-AE2B-434AB3A40236} = {D0CC1FF4-2747-4278-A51F-BE9AA959175B}
 		{CBEDBE33-A883-4BFA-AE0A-8B3573F09BD0} = {D0CC1FF4-2747-4278-A51F-BE9AA959175B}
-		{F2BEB8B2-0D9B-4CD9-A4BD-AE8E00903A67} = {D0CC1FF4-2747-4278-A51F-BE9AA959175B}
 		{CB5BCF0A-4741-477A-94C6-49ECA782555F} = {D0CC1FF4-2747-4278-A51F-BE9AA959175B}
 		{0FA529D1-D0A9-4A8E-90F5-117CE80F2EDE} = {D0CC1FF4-2747-4278-A51F-BE9AA959175B}
 		{6CD185D1-08E0-4729-A999-2D5B57BA8193} = {C4C64188-4FAE-4CC3-A9E6-D9D4AF7429B6}

+ 0 - 69
CSharp/Game/BehaviorTreeTest/BehaviorTreeFactoryTest.cs

@@ -1,69 +0,0 @@
-using System.Collections.Generic;
-using BehaviorTree;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-
-namespace BehaviorTreeTest
-{
-    [TestClass]
-    public class BehaviorTreeFactoryTest
-    {
-        [TestMethod]
-        public void TestCreateTree()
-        {
-            var config = new Config
-            {
-                Name = "selector",
-                Id = 1,
-                Args = new List<string> { "11" },
-                SubConfigs =
-                    new List<Config>
-                    {
-                        new Config
-                        {
-                            Name = "sequence",
-                            Id = 2,
-                            Args = new List<string> { "12" },
-                            SubConfigs =
-                                new List<Config>
-                                {
-                                    new Config
-                                    {
-                                        Name = "selector",
-                                        Id = 4,
-                                        Args = new List<string> { "14" },
-                                    },
-                                    new Config
-                                    {
-                                        Name = "selector",
-                                        Id = 5,
-                                        Args = new List<string> { "15", "17" },
-                                    }
-                                }
-                        },
-                        new Config
-                        {
-                            Name = "not",
-                            Id = 3,
-                            Args = new List<string> { "13" },
-                            SubConfigs =
-                                new List<Config>
-                                {
-                                    new Config
-                                    {
-                                        Name = "selector",
-                                        Id = 6,
-                                        Args = new List<string> { "16" },
-                                    }
-                                }
-                        }
-                    }
-            };
-
-            var behaviorTreeFactory = new BehaviorTreeFactory();
-            BehaviorTree.BehaviorTree behaviorTree = behaviorTreeFactory.CreateTree(config);
-            var blackBoard = new BlackBoard();
-
-            Assert.IsTrue(behaviorTree.Run(blackBoard));
-        }
-    }
-}

+ 0 - 103
CSharp/Game/BehaviorTreeTest/BehaviorTreeTest.csproj

@@ -1,103 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectGuid>{DD6F4735-E8E2-4F10-AE2B-434AB3A40236}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>BehaviorTreeTest</RootNamespace>
-    <AssemblyName>BehaviorTreeTest</AssemblyName>
-    <TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
-    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath>
-    <IsCodedUITest>False</IsCodedUITest>
-    <TestProjectType>UnitTest</TestProjectType>
-    <TargetFrameworkProfile />
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>..\..\Bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>..\..\Bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="System" />
-  </ItemGroup>
-  <Choose>
-    <When Condition="('$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '') and '$(TargetFrameworkVersion)' == 'v3.5'">
-      <ItemGroup>
-        <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
-      </ItemGroup>
-    </When>
-    <Otherwise>
-      <ItemGroup>
-        <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework" />
-      </ItemGroup>
-    </Otherwise>
-  </Choose>
-  <ItemGroup>
-    <Compile Include="ConfigTest.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="BehaviorTreeFactoryTest.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\..\Platform\Helper\Helper.csproj">
-      <Project>{24233cd5-a5df-484b-a482-b79cb7a0d9cb}</Project>
-      <Name>Helper</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\BehaviorTree\BehaviorTree.csproj">
-      <Project>{c4e7a34a-095c-4983-ab63-fc2d20cd6824}</Project>
-      <Name>BehaviorTree</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\Component\Component.csproj">
-      <Project>{0fa529d1-d0a9-4a8e-90f5-117ce80f2ede}</Project>
-      <Name>Component</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\World\World.csproj">
-      <Project>{cbedbe33-a883-4bfa-ae0a-8b3573f09bd0}</Project>
-      <Name>World</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <Choose>
-    <When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'">
-      <ItemGroup>
-        <Reference Include="Microsoft.VisualStudio.QualityTools.CodedUITestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-          <Private>False</Private>
-        </Reference>
-        <Reference Include="Microsoft.VisualStudio.TestTools.UITest.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-          <Private>False</Private>
-        </Reference>
-        <Reference Include="Microsoft.VisualStudio.TestTools.UITest.Extension, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-          <Private>False</Private>
-        </Reference>
-        <Reference Include="Microsoft.VisualStudio.TestTools.UITesting, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-          <Private>False</Private>
-        </Reference>
-      </ItemGroup>
-    </When>
-  </Choose>
-  <Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
-       Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
-  </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-</Project>

+ 0 - 71
CSharp/Game/BehaviorTreeTest/ConfigTest.cs

@@ -1,71 +0,0 @@
-using System;
-using System.Collections.Generic;
-using BehaviorTree;
-using Helper;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-
-namespace BehaviorTreeTest
-{
-    [TestClass]
-    public class ConfigTest
-    {
-        [TestMethod]
-        public void TestJsonToConfig()
-        {
-            var config = new Config
-            {
-                Name = "selector",
-                Id = 1,
-                Args = new List<string> { "11" },
-                SubConfigs =
-                    new List<Config>
-                    {
-                        new Config
-                        {
-                            Name = "selector",
-                            Id = 2,
-                            Args = new List<string> { "12" },
-                            SubConfigs =
-                                new List<Config>
-                                {
-                                    new Config
-                                    {
-                                        Name = "selector",
-                                        Id = 4,
-                                        Args = new List<string> { "14" },
-                                    },
-                                    new Config
-                                    {
-                                        Name = "selector",
-                                        Id = 5,
-                                        Args = new List<string> { "15", "17" },
-                                    }
-                                }
-                        },
-                        new Config
-                        {
-                            Name = "selector",
-                            Id = 3,
-                            Args = new List<string> { "13" },
-                            SubConfigs =
-                                new List<Config>
-                                {
-                                    new Config
-                                    {
-                                        Name = "selector",
-                                        Id = 6,
-                                        Args = new List<string> { "16" },
-                                    }
-                                }
-                        }
-                    }
-            };
-
-            string json = MongoHelper.ToJson(config);
-            Console.WriteLine(json);
-
-            var newConfig = MongoHelper.FromJson<Config>(json);
-            Assert.AreEqual(json, MongoHelper.ToJson(newConfig));
-        }
-    }
-}

+ 0 - 39
CSharp/Game/BehaviorTreeTest/Properties/AssemblyInfo.cs

@@ -1,39 +0,0 @@
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// 有关程序集的常规信息通过以下特性集 
-// 控制。更改这些特性值可修改
-// 与程序集关联的信息。
-
-[assembly: AssemblyTitle("BehaviorTreeTest")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("BehaviorTreeTest")]
-[assembly: AssemblyCopyright("Copyright ©  2013")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// 将 ComVisible 设置为 false 会使此程序集中的类型 
-// 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型,
-// 请将该类型上的 ComVisible 特性设置为 true。
-
-[assembly: ComVisible(false)]
-
-// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
-
-[assembly: Guid("3db0a0ea-8916-4bb2-a6d8-8487a2c2d60c")]
-
-// 程序集的版本信息由以下四个值组成:
-//
-//      主版本
-//      次版本
-//      生成号
-//      修订号
-//
-// 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
-// 方法是按如下所示使用“*”:
-// [assembly: AssemblyVersion("1.0.*")]
-
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]

+ 0 - 33
CSharp/Game/WorldTest/BuffManagerTest.cs

@@ -1,33 +0,0 @@
-using Component;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-
-namespace WorldTest
-{
-    [TestClass]
-    public class BuffManagerTest
-    {
-        private TestContext testContextInstance;
-
-        public TestContext TestContext
-        {
-            get
-            {
-                return this.testContextInstance;
-            }
-            set
-            {
-                this.testContextInstance = value;
-            }
-        }
-
-        [TestMethod]
-        public void TestAdd()
-        {
-            var buffManager = new BuffManager();
-            var buff = new Buff { Type = 1 };
-            buffManager.Add(buff);
-            var getBuff = buffManager.GetById(buff.Id);
-            Assert.AreSame(buff, getBuff);
-        }
-    }
-}

+ 0 - 28
CSharp/Game/WorldTest/ObjectTest.cs

@@ -1,28 +0,0 @@
-using System;
-using Helper;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-using Object = Component.Object;
-
-namespace ObjectTest
-{
-    internal class Player: Object
-    {
-    }
-
-    [TestClass]
-    public class ObjectTest
-    {
-        [TestMethod]
-        public void Serialize()
-        {
-            var player = new Player();
-            player["health"] = 10;
-
-            string json = MongoHelper.ToJson(player);
-            Console.WriteLine(json);
-
-            var player2 = MongoHelper.FromJson<Player>(json);
-            Console.WriteLine(MongoHelper.ToJson(player2));
-        }
-    }
-}

+ 0 - 39
CSharp/Game/WorldTest/Properties/AssemblyInfo.cs

@@ -1,39 +0,0 @@
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// 有关程序集的常规信息通过以下特性集 
-// 控制。更改这些特性值可修改
-// 与程序集关联的信息。
-
-[assembly: AssemblyTitle("ObjectTest")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("ObjectTest")]
-[assembly: AssemblyCopyright("Copyright ©  2013")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// 将 ComVisible 设置为 false 会使此程序集中的类型 
-// 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型,
-// 请将该类型上的 ComVisible 特性设置为 true。
-
-[assembly: ComVisible(false)]
-
-// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
-
-[assembly: Guid("fb379d23-be2c-4b0f-a754-59a4a8d39c3a")]
-
-// 程序集的版本信息由以下四个值组成:
-//
-//      主版本
-//      次版本
-//      生成号
-//      修订号
-//
-// 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
-// 方法是按如下所示使用“*”:
-// [assembly: AssemblyVersion("1.0.*")]
-
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]

+ 0 - 25
CSharp/Game/WorldTest/WorldTest.cs

@@ -1,25 +0,0 @@
-using System.Threading;
-using Component;
-using Helper;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-
-namespace WorldTest
-{
-    [TestClass]
-    public class WorldTest
-    {
-        [TestMethod]
-        public void TestReload()
-        {
-            var world = World.World.Instance;
-            world.LogicManager.Handle(2, MongoHelper.ToBson(new CLoginWorld()));
-            int count = 2;
-            while (--count != 0)
-            {
-                world.LogicManager.Handle(3, "tanghai".ToByteArray());
-                Thread.Sleep(1);
-                world.LogicManager.Reload();
-            }
-        }
-    }
-}

+ 0 - 113
CSharp/Game/WorldTest/WorldTest.csproj

@@ -1,113 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectGuid>{F2BEB8B2-0D9B-4CD9-A4BD-AE8E00903A67}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>WorldTest</RootNamespace>
-    <AssemblyName>WorldTest</AssemblyName>
-    <TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
-    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath>
-    <IsCodedUITest>False</IsCodedUITest>
-    <TestProjectType>UnitTest</TestProjectType>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <RestorePackages>true</RestorePackages>
-    <TargetFrameworkProfile />
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>..\..\Bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>..\..\Bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="MongoDB.Bson, Version=1.9.2.235, Culture=neutral, PublicKeyToken=f686731cfb9cc103, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\packages\mongocsharpdriver.1.9.2\lib\net35\MongoDB.Bson.dll</HintPath>
-    </Reference>
-    <Reference Include="MongoDB.Driver">
-      <HintPath>..\..\packages\mongocsharpdriver.1.9.2\lib\net35\MongoDB.Driver.dll</HintPath>
-    </Reference>
-    <Reference Include="System" />
-  </ItemGroup>
-  <Choose>
-    <When Condition="('$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '') and '$(TargetFrameworkVersion)' == 'v3.5'">
-      <ItemGroup>
-        <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
-      </ItemGroup>
-    </When>
-    <Otherwise>
-      <ItemGroup>
-        <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework" />
-      </ItemGroup>
-    </Otherwise>
-  </Choose>
-  <ItemGroup>
-    <Compile Include="BuffManagerTest.cs" />
-    <Compile Include="ObjectTest.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="WorldTest.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\..\Platform\Helper\Helper.csproj">
-      <Project>{24233cd5-a5df-484b-a482-b79cb7a0d9cb}</Project>
-      <Name>Helper</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\Component\Component.csproj">
-      <Project>{0fa529d1-d0a9-4a8e-90f5-117ce80f2ede}</Project>
-      <Name>Component</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\World\World.csproj">
-      <Project>{cbedbe33-a883-4bfa-ae0a-8b3573f09bd0}</Project>
-      <Name>World</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="packages.config" />
-  </ItemGroup>
-  <Choose>
-    <When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'">
-      <ItemGroup>
-        <Reference Include="Microsoft.VisualStudio.QualityTools.CodedUITestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-          <Private>False</Private>
-        </Reference>
-        <Reference Include="Microsoft.VisualStudio.TestTools.UITest.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-          <Private>False</Private>
-        </Reference>
-        <Reference Include="Microsoft.VisualStudio.TestTools.UITest.Extension, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-          <Private>False</Private>
-        </Reference>
-        <Reference Include="Microsoft.VisualStudio.TestTools.UITesting, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-          <Private>False</Private>
-        </Reference>
-      </ItemGroup>
-    </When>
-  </Choose>
-  <Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
-       Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
-  </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-</Project>

+ 0 - 4
CSharp/Game/WorldTest/packages.config

@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
-  <package id="mongocsharpdriver" version="1.9.2" targetFramework="net45" />
-</packages>