public void Rate([FromBody] Rate model) { rateRepository.Add(model); var book = bookRepository.GetById(model.BookId); book.Rating += model.Value; bookRepository.Update(book); }
static async Task InitializeDatabase() { var startDate = DateTime.Now.AddDays(-365); var endDate = DateTime.Now; for (int i = 0; i < currencies.Length; i++) { for (int j = 0; j < currencies.Length; j++) { var source = currencies[i]; var target = currencies[j]; if (source == target) { continue; } Console.WriteLine($"{source} {target}"); var rates = (await client.GetRatesAsync(source, target, startDate, endDate)).ToList(); var rep = new RateRepository("rates", source, target); foreach (var rate in rates) { var r = new Models.Rate { Value = rate.Value, Date = rate.Time }; await rep.Add(r); } // var rep90 = new RateRepository("sma90", source, target); // foreach (var rate in GetRate(rates, sma90, 0).ToList()) // { // await rep90.Add(rate); // } // var rep4 = new RateRepository("sma4", source, target); // foreach (var rate in GetRate(rates, sma4, 0).ToList()) // { // await rep4.Add(rate); // } // var rep14 = new RateRepository("rsi14", source, target); // foreach (var rate in GetRsi(rates, rsi14, 0).ToList()) // { // await rep14.Add(rate); // } } } }
static async Task MonitorAlert() { Dictionary <string, List <Rate> > cache = new Dictionary <string, List <Rate> >(); DateTime day = DateTime.Now; while (true) { for (int i = 0; i < currencies.Length; i++) { for (int j = 0; j < currencies.Length; j++) { var source = currencies[i]; var target = currencies[j]; if (source == target) { continue; } Console.WriteLine($"{source} {target}"); var key = $"{source}_{target}"; if (!cache.ContainsKey(key)) { var startDate = DateTime.Now; var endDate = DateTime.Now.AddDays(-90); var rates = (await client.GetRatesAsync(source, target, startDate, endDate)).ToList(); cache.Add(key, rates); } var lastRate = (await client.GetRatesAsync(source, target, DateTime.Now, DateTime.Now)).FirstOrDefault(); var last = new Models.Rate(); last.Value = lastRate.Value; // if (lastRate != null) // { // var rates = cache[key]; // rates.RemoveAt(rates.Count - 1); // rates.Add(lastRate); // } var updatedRates = cache[key]; var rate90 = GetRate(updatedRates, sma90); var rate4 = GetRate(updatedRates, sma4); var rateRsi = GetRsi(updatedRates, rsi14); TriggerAlerts(source, target, rate90, rate4, rateRsi, last); if (DateTime.Now.DayOfYear != day.DayOfYear) { var rep90 = new RateRepository("sma90", source, target); await rep90.Add(rate90); var rep4 = new RateRepository("sma4", source, target); await rep4.Add(rate4); var rep14 = new RateRepository("rsi14", source, target); await rep14.Add(rateRsi); day = DateTime.Now; } } } return; System.Threading.Thread.Sleep(60000); } }