public void InitTest()
        {
            // забить котировки
            QuoteMaker.FillQuoteStorageWithDefaultValues();

            // словари
            TradeSharpDictionary.Initialize(MoqTradeSharpDictionary.Mock);
            DalSpot.Instantiate(TradeSharpDictionary.Instance.proxy);

            tradeManager = new TradeManager(
                null,
                null,
                QuoteStorage.Instance, accountId =>
            {
                // ReSharper disable ConvertToLambdaExpression
                return(LinqToEntity.DecorateAccountGroup(conn.ACCOUNT.First(a => a.ID == accountId).ACCOUNT_GROUP));
                // ReSharper restore ConvertToLambdaExpression
            });
            ManagerTrade.MakeTestInstance();

            // временно удалить файл начального наполнения (открытые ордера)
            TradeSharpConnectionPersistent.RestoreCsvFilesInMoqDbFolder();
            TradeSharpConnectionPersistent.RenameCsvFilesContainingAccountDataInMoqDbFolder();
            conn = TradeSharpConnectionPersistent.InitializeTradeSharpConnection();
            MakeTestContents();
        }
Example #2
0
        protected override void OnStart(string[] args)
        {
            // подгрузить метаданные
            DalSpot.Instantiate(DictionaryManager.Instance);
            // инициализация торговой библиотеки
            StartTradeLib();
            // запустить сервера WCF
            StartWcfHosts();
            // подгрузить срез котировок
            QuoteStorage.Instance.LoadQuotes(string.Format("{0}\\lastquote.txt", ExecutablePath.ExecPath));
            // старт монитора ордеров
            AccountCheckStream.Instance.Start();
            // старт сохранения событий по счетам
            UserEventStorage.Instance.Start();

            try
            {
                hostModuleController = new ServiceHost(ModuleStatusController.Instance);
                hostModuleController.Open();
            }
            catch (Exception ex)
            {
                Logger.Error("Ошибка в ModuleController", ex);
            }

            // старт получения живой котиры
            try
            {
                quoteReceiver = new TcpQuoteReceiver();
                quoteReceiver.OnQuotesReceived += OnQuotesReceived;
            }
            catch (Exception ex)
            {
                Logger.Error("Ошибка старта получения живой котировки", ex);
            }
            StartWebServer();
            // стартовать прослушку очереди сообщений от провайдеров
            try
            {
                ProviderQueueReader.Instance.Start();
            }
            catch (Exception ex)
            {
                Logger.Error("Ошибка старта прослушки очереди сообщений от провайдера", ex);
                throw;
            }
            try
            {
                UserEventManager.Instance.Start();
            }
            catch (Exception ex)
            {
                Logger.Error("Ошибка запуска UserEventManager", ex);
            }
            Logger.Info("Сервис запущен");
        }
        public void InitContext()
        {
            // очистить каталог котировок
            quoteFolder = AppDomain.CurrentDomain.BaseDirectory + "\\quotes";
            try
            {
                if (Directory.Exists(quoteFolder))
                {
                    foreach (var fileName in Directory.GetFiles(quoteFolder, "*.quote"))
                    {
                        File.Delete(fileName);
                    }
                }
            }
            catch (Exception ex)
            {
                Assert.Fail("NuDailyQuoteStorage - невозможно очистить каталог котировок: {0}", ex.Message);
            }

            // подготовить словарь валют
            DalSpot.Instantiate(MoqTradeSharpDictionary.Mock);

            // подготовить тестовые котировки
            var endTime   = DateTime.Now;
            var startTime = endTime.AddDays(-30).AddHours(-2);
            // подготовить список "серверных" гэпов
            var daysOff = QuoteMaker.MakeGapsOnDaysOff(startTime, endTime);
            // подготовить свечи m1
            var tickerCandles = new Dictionary <string, List <CandleData> >();

            foreach (var ticker in DalSpot.Instance.GetTickerNames())
            {
                var candles = QuoteMaker.MakeQuotes(startTime, endTime, daysOff);
                tickerCandles.Add(ticker, candles);
            }

            mockQuoteStorage = MoqQuoteStorage.MakeMoq(tickerCandles);
            QuoteStorage.Initialize(mockQuoteStorage.Object);
        }
Example #4
0
 public void TearDownMethods()
 {
     DalSpot.Instantiate(null);
 }
Example #5
0
 public void SetupMethods()
 {
     adoHalper = new DatabaseQuoteEnquirer();
     DalSpot.Instantiate(MoqTradeSharpDictionary.Mock);
 }