/// <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); }
/// <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); }