diff --git a/Anywhere/Anywhere.sln b/Anywhere/Anywhere.sln
new file mode 100644
index 0000000000..6cf87801f3
--- /dev/null
+++ b/Anywhere/Anywhere.sln
@@ -0,0 +1,22 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Express 2013 for Windows Desktop
+VisualStudioVersion = 12.0.21005.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Anywhere", "Anywhere\Anywhere.csproj", "{BDDB57FB-3404-48C8-B730-94B0957BBBD8}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {BDDB57FB-3404-48C8-B730-94B0957BBBD8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BDDB57FB-3404-48C8-B730-94B0957BBBD8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BDDB57FB-3404-48C8-B730-94B0957BBBD8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BDDB57FB-3404-48C8-B730-94B0957BBBD8}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/Anywhere/Anywhere/Anywhere.csproj b/Anywhere/Anywhere/Anywhere.csproj
new file mode 100644
index 0000000000..612ae4a8f0
--- /dev/null
+++ b/Anywhere/Anywhere/Anywhere.csproj
@@ -0,0 +1,154 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {BDDB57FB-3404-48C8-B730-94B0957BBBD8}
+ WinExe
+ Properties
+ Anywhere
+ Anywhere
+ v4.5.1
+ 512
+ {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ 4
+
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+ False
+ ..\..\..\..\Documents\StockSharp\StockSharp_4.3.10\References\ActiproSoftware.Docking.Wpf.dll
+
+
+ ..\..\..\..\Documents\StockSharp\StockSharp_4.3.10\References\Ecng.Collections.dll
+
+
+ ..\..\..\..\Documents\StockSharp\StockSharp_4.3.10\References\Ecng.Common.dll
+
+
+ ..\..\..\..\Documents\StockSharp\StockSharp_4.3.10\References\Ecng.ComponentModel.dll
+
+
+ ..\..\..\..\Documents\StockSharp\StockSharp_4.3.10\References\Ecng.Localization.dll
+
+
+ ..\..\..\..\Documents\StockSharp\StockSharp_4.3.10\References\Ecng.Serialization.dll
+
+
+ ..\..\..\..\Documents\StockSharp\StockSharp_4.3.10\References\Ecng.Xaml.dll
+
+
+ ..\..\..\..\Documents\StockSharp\StockSharp_4.3.10\References\MoreLinq.dll
+
+
+ ..\..\..\..\Documents\StockSharp\StockSharp_4.3.10\References\StockSharp.Algo.dll
+
+
+ ..\..\..\..\Documents\StockSharp\StockSharp_4.3.10\References\StockSharp.BusinessEntities.dll
+
+
+ ..\..\..\..\Documents\StockSharp\StockSharp_4.3.10\References\StockSharp.Localization.dll
+
+
+ ..\..\..\..\Documents\StockSharp\StockSharp_4.3.10\References\StockSharp.Logging.dll
+
+
+ ..\..\..\..\Documents\StockSharp\StockSharp_4.3.10\References\StockSharp.Messages.dll
+
+
+ ..\..\..\..\Documents\StockSharp\StockSharp_4.3.10\References\StockSharp.Quik.dll
+
+
+ ..\..\..\..\Documents\StockSharp\StockSharp_4.3.10\References\StockSharp.Xaml.dll
+
+
+
+
+
+
+
+
+
+ 4.0
+
+
+
+
+
+ ..\..\..\..\Documents\StockSharp\StockSharp-4.3.10\References\Ecng\Xceed.Wpf.Toolkit.dll
+
+
+
+
+ MSBuild:Compile
+ Designer
+
+
+ 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
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Anywhere/Anywhere/App.config b/Anywhere/Anywhere/App.config
new file mode 100644
index 0000000000..a7490ebc98
--- /dev/null
+++ b/Anywhere/Anywhere/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/Anywhere/Anywhere/App.xaml b/Anywhere/Anywhere/App.xaml
new file mode 100644
index 0000000000..3e43c084b0
--- /dev/null
+++ b/Anywhere/Anywhere/App.xaml
@@ -0,0 +1,8 @@
+
+
+
+
+
diff --git a/Anywhere/Anywhere/App.xaml.cs b/Anywhere/Anywhere/App.xaml.cs
new file mode 100644
index 0000000000..a31d0f5364
--- /dev/null
+++ b/Anywhere/Anywhere/App.xaml.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Data;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows;
+
+namespace Anywhere
+{
+ ///
+ /// Логика взаимодействия для App.xaml
+ ///
+ public partial class App : Application
+ {
+ }
+}
diff --git a/Anywhere/Anywhere/MainWindow.xaml b/Anywhere/Anywhere/MainWindow.xaml
new file mode 100644
index 0000000000..e4c0523f7f
--- /dev/null
+++ b/Anywhere/Anywhere/MainWindow.xaml
@@ -0,0 +1,147 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Anywhere/Anywhere/MainWindow.xaml.cs b/Anywhere/Anywhere/MainWindow.xaml.cs
new file mode 100644
index 0000000000..a389b96d63
--- /dev/null
+++ b/Anywhere/Anywhere/MainWindow.xaml.cs
@@ -0,0 +1,482 @@
+using System;
+using System.Windows;
+using System.Linq;
+using System.IO;
+using System.Reflection;
+using System.Text;
+
+using Ecng.Xaml;
+using MoreLinq;
+
+using StockSharp.Algo;
+using StockSharp.BusinessEntities;
+using StockSharp.Quik;
+using StockSharp.Messages;
+using StockSharp.Logging;
+using StockSharp.Xaml;
+using StockSharp.Localization;
+
+namespace Anywhere
+{
+
+ public class UserSubscription
+ {
+ public Security Security { set; get; }
+
+ public string SecurityId
+ {
+ get { return Security.Id; }
+ }
+
+ public bool Trades { set; get; }
+ public bool MarketDepth { set; get; }
+ public bool Level1 { set; get; }
+ public bool Orders { set; get; }
+ public bool MyTrades { set; get; }
+
+ }
+
+ ///
+ /// Логика взаимодействия для MainWindow.xaml
+ ///
+ public partial class MainWindow : Window
+ {
+ private Connector _connector;
+ private LogManager _logManager = new LogManager();
+
+ private bool _isUnloading; // флаг - идет загрузка данных
+ private bool _isConnectClick; // флаг - выполнен щелчок по кнопке соединения
+
+ static private string _outputFolder = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "OUTPUT"); // путь к папке в выгружаемыми данными
+
+ private string _tradesFilePath = Path.Combine(_outputFolder, "trades.txt");
+ private string _ordersFilePath = Path.Combine(_outputFolder, "orders.txt");
+ private string _myTradesFilePath = Path.Combine(_outputFolder, "mytrades.txt");
+ private string _level1FilePath = Path.Combine(_outputFolder, "level1.txt");
+ private string _positionsFilePath = Path.Combine(_outputFolder, "positions.txt");
+
+ public MainWindow()
+ {
+ InitializeComponent();
+
+ ConnectCommand = new DelegateCommand(OnConnect, o => CanOnConnect(o));
+ UnloadingCommand = new DelegateCommand(Unloading, o => CanUnloading(o));
+ DeleteSubscriptionCommand = new DelegateCommand(DeleteSubscription, o => CanDeleteSubscription(o));
+
+ if (!Directory.Exists(_outputFolder))
+ {
+ Directory.CreateDirectory(_outputFolder);
+ }
+ }
+
+ private ObservableCollectionEx subscriptions;
+
+ ///
+ /// Содержит информацию о подписке на данные
+ ///
+ public ObservableCollectionEx Subscriptions
+ {
+ get
+ {
+ if (subscriptions == null) Subscriptions = new ObservableCollectionEx();
+ return subscriptions;
+
+ }
+ set { subscriptions = value; }
+ }
+
+ #region Commands
+
+ ///
+ /// Устанавливает/разрывает соединение
+ ///
+ public DelegateCommand ConnectCommand { set; get; }
+
+ private void OnConnect(Object obj)
+ {
+ if (obj.ToString() == "Подключиться")
+ {
+ Connect();
+ }
+ else
+ {
+ _connector.Disconnect();
+ }
+
+ _isConnectClick = true;
+ }
+
+ private bool CanOnConnect(Object obj)
+ {
+ return !_isConnectClick;
+ }
+
+ ///
+ /// Запускает/останавливает выгрузку данных
+ ///
+ public DelegateCommand UnloadingCommand { set; get; }
+
+ private void Unloading(Object obj)
+ {
+ if (obj.ToString() == "Начать выгрузку")
+ {
+ _isUnloading = true;
+
+ SecurityPicker.SecurityProvider = new FilterableSecurityProvider(_connector);
+ SecurityPicker.MarketDataProvider = _connector;
+
+ var securities = SecurityPicker.FilteredSecurities.ToArray();
+
+ foreach (var security in securities)
+ {
+ if (!subscriptions.Any(s => s.Security == security))
+ {
+ SecurityPicker.ExcludeSecurities.Add(security);
+ }
+ }
+
+ foreach (var subscr in Subscriptions)
+ {
+ if (subscr.Level1) _connector.RegisterSecurity(subscr.Security);
+ if (subscr.MarketDepth) _connector.RegisterMarketDepth(subscr.Security);
+ if (subscr.Trades) _connector.RegisterTrades(subscr.Security);
+ }
+
+ foreach (var portfolio in _connector.Portfolios)
+ {
+ _connector.RegisterPortfolio(portfolio);
+ }
+
+ UnloadingButton.Content = "Остановить выгрузку";
+
+ }
+ else if (obj.ToString() == "Остановить выгрузку")
+ {
+
+ foreach (var subscr in Subscriptions)
+ {
+ if (subscr.Level1) _connector.UnRegisterSecurity(subscr.Security);
+ if (subscr.MarketDepth) _connector.UnRegisterMarketDepth(subscr.Security);
+ if (subscr.Trades) _connector.UnRegisterTrades(subscr.Security);
+ }
+
+ SecurityPicker.SecurityProvider = null;
+ SecurityPicker.MarketDataProvider = null;
+ SecurityPicker.ExcludeSecurities.Clear();
+
+ foreach (var portfolio in _connector.Portfolios)
+ {
+ _connector.UnRegisterPortfolio(portfolio);
+ }
+
+ UnloadingButton.Content = "Начать выгрузку";
+
+ _isUnloading = false;
+
+ }
+ }
+
+ private bool CanUnloading(Object obj)
+ {
+ return _connector != null &&
+ _connector.ConnectionState == ConnectionStates.Connected &&
+ Subscriptions.Any(s => s.MarketDepth == true || s.Level1 == true || s.Trades == true);
+ }
+
+
+ ///
+ /// Удалает элемент подписки
+ ///
+ public DelegateCommand DeleteSubscriptionCommand { set; get; }
+
+ private void DeleteSubscription(Object obj)
+ {
+ if (Subscriptions.Contains((UserSubscription)obj))
+ {
+ Subscriptions.Remove((UserSubscription)obj);
+ SecurityPicker.ExcludeSecurities.Add(((UserSubscription)obj).Security);
+ }
+ }
+
+ private bool CanDeleteSubscription(Object obj)
+ {
+ return (obj != null && !_isUnloading);
+ }
+
+ #endregion
+
+ private void Connect()
+ {
+ if (_connector == null)
+ {
+ _connector = new QuikTrader();
+
+ _connector.LogLevel = LogLevels.Debug;
+
+ _logManager.Sources.Add(_connector);
+
+ _logManager.Listeners.Add(new GuiLogListener(Monitor));
+
+ _connector.Connected += () =>
+ {
+ _isConnectClick = false;
+ this.GuiAsync(() => ConnectButton.Content = LocalizedStrings.Disconnect);
+
+ };
+
+ _connector.Disconnected += () =>
+ {
+ _isConnectClick = false;
+ this.GuiAsync(() => ConnectButton.Content = LocalizedStrings.Connect);
+ };
+
+ SecurityEditor.SecurityProvider = new FilterableSecurityProvider(_connector);
+
+ _connector.NewSecurities += securities => { };
+
+ _connector.NewMyTrades += trades =>
+ {
+ trades.ForEach(t =>
+ {
+ if (Subscriptions.Any(s => s.Security == t.Trade.Security && s.Trades))
+ {
+ MyTradeGrid.Trades.Add(t);
+ SaveToFile(MyTradeToString(t), _myTradesFilePath);
+ }
+ });
+ };
+
+ _connector.NewTrades += trades =>
+ {
+ TradeGrid.Trades.AddRange(trades);
+ trades.ForEach(t => SaveToFile(TradeToString(t), _tradesFilePath));
+ };
+
+ _connector.NewOrders += orders =>
+ {
+ orders.ForEach(o =>
+ {
+ if (Subscriptions.Any(s => s.Security == o.Security && s.Orders))
+ {
+ OrderGrid.Orders.Add(o);
+ SaveToFile(OrderToString(o), _ordersFilePath);
+ }
+ });
+ };
+
+ _connector.OrdersChanged += orders =>
+ {
+ orders.ForEach(o =>
+ {
+ if (Subscriptions.Any(s => s.Security == o.Security && s.Orders))
+ {
+ OrderGrid.Orders.Add(o);
+ SaveToFile(OrderToString(o), _ordersFilePath);
+ }
+ });
+ };
+
+ _connector.NewStopOrders += orders =>
+ {
+ orders.ForEach(o =>
+ {
+ if (Subscriptions.Any(s => s.Security == o.Security && s.Orders))
+ {
+ OrderGrid.Orders.Add(o);
+ SaveToFile(OrderToString(o), _ordersFilePath);
+ }
+ });
+ };
+
+ _connector.StopOrdersChanged += orders =>
+ {
+ orders.ForEach(o =>
+ {
+ if (Subscriptions.Any(s => s.Security == o.Security && s.Orders))
+ {
+ OrderGrid.Orders.Add(o);
+ SaveToFile(OrderToString(o), _ordersFilePath);
+ }
+ });
+ };
+
+ _connector.NewPortfolios += portfolios => PortfolioGrid.Portfolios.AddRange(portfolios);
+
+ _connector.NewPositions += positions =>
+ {
+ positions.ForEach(p =>
+ {
+ if (Subscriptions.Any(s => s.Security == p.Security ))
+ {
+ PortfolioGrid.Positions.Add(p);
+ SaveToFile(PositionToString(p), _positionsFilePath);
+ }
+ });
+ };
+
+ _connector.PositionsChanged += positions =>
+ {
+ positions.ForEach(p =>
+ {
+ if (Subscriptions.Any(s => s.Security == p.Security))
+ {
+ PortfolioGrid.Positions.Add(p);
+ SaveToFile(PositionToString(p), _positionsFilePath);
+ }
+ });
+ };
+
+
+ _connector.SecuritiesChanged += securities =>
+ {
+ securities.ForEach(s => SaveToFile(Level1ToString(s), _level1FilePath));
+ };
+
+ _connector.MarketDepthsChanged += depths =>
+ {
+ depths.ForEach(d => DepthToFile(d, Path.Combine(_outputFolder, string.Format("{0}_depth.txt", d.Security.Code))));
+ };
+
+ //_connector.ValuesChanged += (a, b, c, d) => { };
+
+ }
+
+ _connector.Connect();
+ }
+
+ private void SecurityEditor_SecuritySelected()
+ {
+ if (Subscriptions.Any(s => s.Security == SecurityEditor.SelectedSecurity)) return;
+ Subscriptions.Add(new UserSubscription() { Security = SecurityEditor.SelectedSecurity });
+ }
+
+ #region Функции записи данных в текстовый файл
+
+ // возвращает строку сделки
+ private string TradeToString(Trade trade)
+ {
+ //securityId;tradeId;time;price;volume;orderdirection
+ return string.Format("{0};{1};{2};{3};{4};{5}",
+ trade.Security.Id,
+ trade.Id.ToString(),
+ trade.Time.ToString(),
+ trade.Price.ToString(),
+ trade.Volume.ToString(),
+ trade.OrderDirection.ToString());
+ }
+
+ // возвращает строку своей сделки
+ private string MyTradeToString(MyTrade trade)
+ {
+ //securityId;tradeId;time;volume;price;orderdirection;orderId
+ return string.Format("{0};{1};{2};{3};{4};{5};{6}",
+ trade.Trade.Security.Id,
+ trade.Trade.Id,
+ trade.Trade.Time,
+ trade.Trade.Volume,
+ trade.Trade.Price,
+ trade.Trade.OrderDirection.ToString(),
+ trade.Order.Id);
+
+ }
+
+ // возвращает строку заявки
+ private string OrderToString(Order order)
+ {
+ //orderId;transactionId;time;securityId;portfolioName;volume;balance;price;direction;type;localTime
+ return string.Format("{0};{1};{2};{3};{4};{5};{6};{7};{8};{9};{10};{11}",
+ order.Id,
+ order.TransactionId,
+ order.Time,
+ order.Security.Id,
+ order.Portfolio.Name,
+ order.Volume,
+ order.Balance,
+ order.Price,
+ order.Direction.ToString(),
+ order.Type.ToString(),
+ order.State.ToString(),
+ order.LocalTime);
+ }
+
+ // возвращает строку позиции
+ private string PositionToString(Position position)
+ {
+ return string.Format("{0};{1};{2};{3}",
+ position.Security.Id,
+ position.Portfolio.Name,
+ position.CurrentValue,
+ position.AveragePrice);
+ }
+
+ // возвращает строку Level1
+ private string Level1ToString(Security security)
+ {
+ return string.Format("{0};{1};{2};{3};{4};{5};{6};{7};{8};{9};{10};{11};{12};{13}",
+ security.Id,
+ security.Board.Code,
+ security.PriceStep,
+ security.VolumeStep,
+ security.Type,
+ security.LastTrade.Price,
+ security.LastTrade.Volume,
+ security.LastTrade.Time.TimeOfDay,
+ security.LastTrade.Time.Date,
+ security.LastTrade.Time.Date,
+ security.BestBid.Price,
+ security.BestBid.Volume,
+ security.BestAsk.Price,
+ security.BestAsk.Volume
+ );
+
+ }
+
+ // возвращает строку котировки стакана
+ private string QuoteToString(Quote quote)
+ {
+ return string.Format("{0};{1};{2}{3}",
+ quote.OrderDirection.ToString(),
+ quote.Price,
+ quote.Volume,
+ Environment.NewLine);
+ }
+
+ // записывает данные в файл
+ private void SaveToFile(string line, string filePath)
+ {
+ using (System.IO.StreamWriter file = new System.IO.StreamWriter(filePath, true))
+ {
+ file.WriteLine(line);
+ }
+ }
+
+ // преобразует стакан в MemoryStream и записывает в файл
+ private void DepthToFile(MarketDepth depth, string filePath)
+ {
+ using (MemoryStream mem = new MemoryStream(200))
+ {
+ for (var i = depth.Asks.GetUpperBound(0); i >= 0; i--)
+ {
+ byte[] bytes = Encoding.UTF8.GetBytes(QuoteToString(depth.Asks[i]));
+ mem.Write(bytes, 0, bytes.Length);
+ }
+
+ for (var i = 0; i <= depth.Bids.GetUpperBound(0); i++)
+ {
+ byte[] bytes = Encoding.UTF8.GetBytes(QuoteToString(depth.Bids[i]));
+ mem.Write(bytes, 0, bytes.Length);
+ }
+
+ using (FileStream file = new FileStream(filePath, FileMode.Create, FileAccess.Write))
+ {
+ mem.WriteTo(file);
+ }
+ }
+
+ }
+
+ #endregion
+
+
+ }
+}
diff --git a/Anywhere/Anywhere/Properties/AssemblyInfo.cs b/Anywhere/Anywhere/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000000..d380542a91
--- /dev/null
+++ b/Anywhere/Anywhere/Properties/AssemblyInfo.cs
@@ -0,0 +1,55 @@
+using System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Windows;
+
+// Управление общими сведениями о сборке осуществляется с помощью
+// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения,
+// связанные со сборкой.
+[assembly: AssemblyTitle("Anywhere")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Anywhere")]
+[assembly: AssemblyCopyright("Copyright © 2015")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Параметр ComVisible со значением FALSE делает типы в сборке невидимыми
+// для COM-компонентов. Если требуется обратиться к типу в этой сборке через
+// COM, задайте атрибуту ComVisible значение TRUE для этого типа.
+[assembly: ComVisible(false)]
+
+//Чтобы начать сборку локализованных приложений, задайте
+//CultureYouAreCodingWith в файле .csproj
+//внутри . Например, если используется английский США
+//в своих исходных файлах установите в 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")]
diff --git a/Anywhere/Anywhere/Properties/Resources.Designer.cs b/Anywhere/Anywhere/Properties/Resources.Designer.cs
new file mode 100644
index 0000000000..ab1013e6ab
--- /dev/null
+++ b/Anywhere/Anywhere/Properties/Resources.Designer.cs
@@ -0,0 +1,63 @@
+//------------------------------------------------------------------------------
+//
+// Этот код создан программой.
+// Исполняемая версия:4.0.30319.34014
+//
+// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
+// повторной генерации кода.
+//
+//------------------------------------------------------------------------------
+
+namespace Anywhere.Properties {
+ using System;
+
+
+ ///
+ /// Класс ресурса со строгой типизацией для поиска локализованных строк и т.д.
+ ///
+ // Этот класс создан автоматически классом StronglyTypedResourceBuilder
+ // с помощью такого средства, как ResGen или Visual Studio.
+ // Чтобы добавить или удалить член, измените файл .ResX и снова запустите ResGen
+ // с параметром /str или перестройте свой проект VS.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ ///
+ /// Возвращает кэшированный экземпляр ResourceManager, использованный этим классом.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Anywhere.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Перезаписывает свойство CurrentUICulture текущего потока для всех
+ /// обращений к ресурсу с помощью этого класса ресурса со строгой типизацией.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/Anywhere/Anywhere/Properties/Resources.resx b/Anywhere/Anywhere/Properties/Resources.resx
new file mode 100644
index 0000000000..ffecec851a
--- /dev/null
+++ b/Anywhere/Anywhere/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/Anywhere/Anywhere/Properties/Settings.Designer.cs b/Anywhere/Anywhere/Properties/Settings.Designer.cs
new file mode 100644
index 0000000000..e4d6376cb6
--- /dev/null
+++ b/Anywhere/Anywhere/Properties/Settings.Designer.cs
@@ -0,0 +1,26 @@
+//------------------------------------------------------------------------------
+//
+// Этот код создан программой.
+// Исполняемая версия:4.0.30319.34014
+//
+// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
+// повторной генерации кода.
+//
+//------------------------------------------------------------------------------
+
+namespace Anywhere.Properties {
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default {
+ get {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/Anywhere/Anywhere/Properties/Settings.settings b/Anywhere/Anywhere/Properties/Settings.settings
new file mode 100644
index 0000000000..8f2fd95d62
--- /dev/null
+++ b/Anywhere/Anywhere/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file