/// <summary> /// Чтение из файла БД данных о цене в заданный промежуток времени /// </summary> /// <param name="begin">врямя начала чтения</param> /// <param name="end">время окончания чтения</param> /// <param name="pair">пара валют, напр. BTC_USD </param> /// <returns></returns> public static TimeCurrencyPair[] ReadHistory(DateTime begin, DateTime end, MoneyPair pair) { Time teaTimeBegin = begin; Time teaTimeEnd = end; IEnumerable <TimeCurrencyPair> teaCurrencyPairs = new List <TimeCurrencyPair>(); var fileName = DecimalTradeDBhelper.CreateFileName(pair); try { if (!File.Exists(fileName)) { DecimalTradeDBhelper.InitDb(fileName); } using (var tf = TeaFile <TimeCurrencyPair> .OpenRead(fileName)) { teaCurrencyPairs = tf.Items.Where(p => (p.currentTime > teaTimeBegin) && (p.currentTime < teaTimeEnd)).ToArray(); Console.WriteLine(teaCurrencyPairs); } } catch (Exception ex) { //Logger.Log.Error("Произошла ошибка! Не удалось прочитать истрические данные"); Console.Write(ex.Message); } return(teaCurrencyPairs.ToArray()); }
/// <summary> /// Сохраняем в хранилище полученные пару валют за текущее время /// </summary> /// <param name="currentPair">Пара валют</param> /// <param name="fileName">Названии файла</param> public static void WriteTick(TimeCurrencyPair currentPair, MoneyPair pair) { var fileName = CreateFileName(pair); if (!File.Exists(fileName)) { InitDb(fileName); } try { using (var tf = TeaFile <TimeCurrencyPair> .Append(fileName)) { tf.Write(currentPair); } } catch (Exception ex) { //Logger.Log.Error("Произошла ошибка! База недоступна. Информация не записана"); } }
internal static string CreateFileName(MoneyPair pair) { return(baseFileName.Insert(14, pair.ToString())); }