Example #1
0
        /// <summary>
        /// Считать файл из кэша
        /// </summary>
        /// <param name="ticker">Тикер</param>
        /// <param name="tf">Таймфрейм</param>
        /// <param name="date1">Дата1</param>
        /// <param name="date2">Дата2</param>
        /// <returns>Чситанные данные или null</returns>
        private byte[] ReadCache(string ticker, Timeframes tf, DateTime date1, DateTime date2)
        {
            string cachePath = _config.GetHistoryProviderCache();

            if (string.IsNullOrEmpty(cachePath))
            {
                return(null);
            }

            string filename = string.Format("{0}_{1}.txt",
                                            date1.ToString("yyyy-MM-dd"),
                                            date2.ToString("yyyy-MM-dd"));
            string path = Path.Combine(cachePath, ticker, tf.ToString(), filename);

            byte[] data = null;
            try
            {
                data = File.ReadAllBytes(path);
            }
            catch
            {
            }

            return(data);
        }
Example #2
0
        /// <summary>
        /// Запись данных в локальный кэш
        /// </summary>
        /// <param name="ticker">Тикер</param>
        /// <param name="tf">Таймфрейм</param>
        /// <param name="date1">Дата 1</param>
        /// <param name="date2">Дата 2</param>
        /// <param name="data">Данные для записи</param>
        /// <returns>true - успешно, false - кэширование отключено</returns>
        private bool WriteCache(string ticker, Timeframes tf, DateTime date1, DateTime date2, byte[] data)
        {
            string cachePath = _config.GetHistoryProviderCache();

            if (string.IsNullOrEmpty(cachePath))
            {
                return(false);
            }

            if (!Directory.Exists(cachePath))
            {
                Directory.CreateDirectory(cachePath);
            }

            string path1 = Path.Combine(cachePath, ticker);

            if (!Directory.Exists(path1))
            {
                Directory.CreateDirectory(path1);
            }

            string path2 = Path.Combine(path1, tf.ToString());

            if (!Directory.Exists(path2))
            {
                Directory.CreateDirectory(path2);
            }

            string filename = string.Format("{0}_{1}.txt",
                                            date1.ToString("yyyy-MM-dd"),
                                            date2.ToString("yyyy-MM-dd"));

            if (data == null)
            {
                data = new byte[0];
            }

            File.WriteAllBytes(Path.Combine(path2, filename), data);

            return(true);
        }