diff --git a/ConnectionsManager/AboutWindow.xaml b/ConnectionsManager/AboutWindow.xaml
new file mode 100755
index 00000000..492dc70f
--- /dev/null
+++ b/ConnectionsManager/AboutWindow.xaml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ConnectionsManager/AboutWindow.xaml.cs b/ConnectionsManager/AboutWindow.xaml.cs
new file mode 100755
index 00000000..200963a3
--- /dev/null
+++ b/ConnectionsManager/AboutWindow.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Shapes;
+
+namespace ConnectionsManager
+{
+ ///
+ /// Interaction logic for AboutWindow.xaml
+ ///
+ public partial class AboutWindow : Window
+ {
+ public AboutWindow(Window owner)
+ {
+ InitializeComponent();
+
+ this.Owner = owner;
+ }
+ }
+}
diff --git a/ConnectionsManager/AddProfileDialog.xaml b/ConnectionsManager/AddProfileDialog.xaml
new file mode 100755
index 00000000..66645118
--- /dev/null
+++ b/ConnectionsManager/AddProfileDialog.xaml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ConnectionsManager/AddProfileDialog.xaml.cs b/ConnectionsManager/AddProfileDialog.xaml.cs
new file mode 100755
index 00000000..5efb0114
--- /dev/null
+++ b/ConnectionsManager/AddProfileDialog.xaml.cs
@@ -0,0 +1,97 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Shapes;
+using System.Text.RegularExpressions;
+using System.Net;
+
+namespace ConnectionsManager
+{
+ ///
+ /// Interaction logic for AddProfileDialog.xaml
+ ///
+ public partial class AddProfileDialog : Window
+ {
+// private const string PIPE_SERVER_NAME = "localhost(pipe)";
+ private const string LOCALHOST_NAME = "localhost";
+
+ public string ProfileName { get; set; }
+
+ public static readonly DependencyProperty HostProperty = DependencyProperty.Register("Host", typeof(string), typeof(AddProfileDialog));
+ public string Host
+ {
+ get { return (string)this.GetValue(HostProperty); }
+ set { this.SetValue(HostProperty, value); }
+ }
+
+ public string Port { get; set; }
+
+ public DelegateCommand OkCommand { get; set; }
+
+ public List HostList { get; set; }
+
+ public AddProfileDialog(Window owner)
+ {
+ InitializeComponent();
+
+ this.Owner = owner;
+
+ OkCommand = new DelegateCommand(ExecuteOk, CanExecuteOk);
+ _MainLayout.DataContext = this;
+
+ Loaded += (sender, e) => MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
+
+ IPHostEntry ips = Dns.GetHostEntry(Dns.GetHostName());
+
+ HostList = new List();
+ HostList.Add(string.Empty);
+ HostList.Add(LOCALHOST_NAME);
+
+ if (ips != null)
+ {
+ foreach (IPAddress ipAddress in ips.AddressList)
+ {
+ HostList.Add(ipAddress.ToString());
+ }
+ }
+
+ Host = HostList.First();
+ }
+
+ private bool CanExecuteOk(object o)
+ {
+ return string.IsNullOrEmpty(ProfileName) == false
+ && string.IsNullOrEmpty(Port) == false;
+ }
+
+ private void ExecuteOk(object o)
+ {
+ this.DialogResult = true;
+ Close();
+ }
+
+ private static bool IsTextAllowed(string text)
+ {
+ Regex regex = new Regex("[^0-9]+");
+ return !regex.IsMatch(text);
+ }
+
+ private void TextBox_PreviewTextInput(object sender, TextCompositionEventArgs e)
+ {
+ e.Handled = !IsTextAllowed(e.Text);
+ }
+
+ private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
+ {
+ OkCommand.RaiseCanExecuteChanged();
+ }
+ }
+}
diff --git a/ConnectionsManager/App.xaml b/ConnectionsManager/App.xaml
new file mode 100755
index 00000000..50b7fab5
--- /dev/null
+++ b/ConnectionsManager/App.xaml
@@ -0,0 +1,8 @@
+
+
+
+
+
diff --git a/ConnectionsManager/App.xaml.cs b/ConnectionsManager/App.xaml.cs
new file mode 100755
index 00000000..f8ab17f8
--- /dev/null
+++ b/ConnectionsManager/App.xaml.cs
@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Data;
+using System.Linq;
+using System.Windows;
+
+namespace ConnectionsManager
+{
+ ///
+ /// Interaction logic for App.xaml
+ ///
+ public partial class App : Application
+ {
+ }
+}
diff --git a/ConnectionsManager/ConnectionsManager.csproj b/ConnectionsManager/ConnectionsManager.csproj
new file mode 100755
index 00000000..97730893
--- /dev/null
+++ b/ConnectionsManager/ConnectionsManager.csproj
@@ -0,0 +1,168 @@
+
+
+
+ Debug
+ x86
+ 8.0.30703
+ 2.0
+ {C8751BA1-6A85-468C-87BD-758F37B8C0DD}
+ WinExe
+ Properties
+ ConnectionsManager
+ ConnectionsManager
+ v4.0
+
+
+ 512
+ {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ 4
+
+
+ x86
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ x86
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+ true
+ bin\Debug\
+ DEBUG;TRACE
+ full
+ AnyCPU
+ bin\Debug\ConnectionsManager.exe.CodeAnalysisLog.xml
+ true
+ GlobalSuppressions.cs
+ prompt
+ MinimumRecommendedRules.ruleset
+ ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets
+ true
+ ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules
+ true
+
+
+ bin\Release\
+ TRACE
+ true
+ pdbonly
+ AnyCPU
+ bin\Release\ConnectionsManager.exe.CodeAnalysisLog.xml
+ true
+ GlobalSuppressions.cs
+ prompt
+ MinimumRecommendedRules.ruleset
+ ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets
+ true
+ ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules
+ true
+
+
+ favicon.ico
+
+
+
+
+
+
+
+
+
+
+ 4.0
+
+
+
+
+
+
+
+ MSBuild:Compile
+ Designer
+
+
+ AboutWindow.xaml
+
+
+ AddProfileDialog.xaml
+
+
+
+
+ Designer
+ MSBuild:Compile
+
+
+ Designer
+ MSBuild:Compile
+
+
+ MSBuild:Compile
+ Designer
+
+
+ App.xaml
+ Code
+
+
+ MainWindow.xaml
+ Code
+
+
+
+
+ Code
+
+
+ True
+ True
+ Resources.resx
+
+
+ True
+ Settings.settings
+ True
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+
+
+
+ {DE76D5C7-B99C-4467-8408-78173BDD84E0}
+ MTApiService
+
+
+
+
+
+
+
+ copy $(TargetPath) $(SolutionDir)Release\
+
+
+
\ No newline at end of file
diff --git a/ConnectionsManager/DelegateCommand.cs b/ConnectionsManager/DelegateCommand.cs
new file mode 100755
index 00000000..a2318830
--- /dev/null
+++ b/ConnectionsManager/DelegateCommand.cs
@@ -0,0 +1,51 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Windows.Input;
+
+namespace ConnectionsManager
+{
+ public class DelegateCommand : ICommand
+ {
+ private readonly Predicate