private static List <RateEntities> LoadData(CbrApi api, DateTime startDate, DateTime endDate) { var rates = new List <RateEntities>(); var valutes = GetValutes(api, "USD", "GBP", "JPY", "CHF", "EUR", "CNY", "TRY"); rates.AddRange(valutes.Select(valute => api.GetValuteRates(valute.Id, startDate, endDate))); rates.AddRange(api.GetMetallRates(startDate, endDate)); // get diffs var ids = rates.Select(x => x.Id).ToList(); foreach (var id in ids) { var entities = rates.First(x => x.Id == id); entities.DateSort(); rates.Add(entities.GetDiffList()); } // get averages for 7, 14, 28, 56 days for (int i = 0; i < 4; i++) { var days = 7 * (1 << i); foreach (var id in ids) { rates.Add(rates.First(x => x.Id == id).GetAverageList(days)); } } return(rates); }
static void Main(string[] args) { var api = new CbrApi(); var rates = LoadData(api, new DateTime(2014, 10, 1), DateTime.Now); // form csv table BuildByCode("R01235", rates); }
public static JArray GetArrayQuotations(string path, DateTime dateBegin, DateTime dateEnd) { CultureInfo.CurrentCulture = new CultureInfo("ru-RU"); var quotationsCsv = FinanceApi.GetFinanceQuotations(dateBegin, dateEnd); Converter.ConvertCsvToXlsx(quotationsCsv, path); var quotations = Converter.ConvertCsvToListQuotation(quotationsCsv); for (int i = 0; i < quotations.Count; i++) { var valCurs = CbrApi.GetValCursUsd(quotations[i].DateQuotation); quotations[i].ChangeCurrencyToRub(valCurs); } JArray jArray = Converter.ConvertListQuotationToJArray(quotations); return(jArray); }
public void TestCbrApi() { double cursValute = CbrApi.GetValCursUsd(new DateTime(2020, 12, 15)); Assert.AreEqual(72.9272, cursValute); }
private static List <Valute> GetValutes(CbrApi api, params string[] codes) { var valutesList = api.GetValutesList(); return(codes.Select(code => valutesList.FirstOrDefault(x => x.IsoCharCode == code)).Where(valute => valute != null).ToList()); }