/// <summary> /// The ExecuteAsync /// </summary> /// <param name="cancellationToken">The cancellationToken<see cref="CancellationToken"/></param> /// <returns>The <see cref="Task"/></returns> public async Task ExecuteAsync(CancellationToken cancellationToken) { try { using (var scope = _scopeFactory.CreateScope()) { var dbContext = scope.ServiceProvider.GetRequiredService <ApplicationDbContext>(); var time = DateTime.Now.ToUniversalTime(); var XtcomPrice = 0.0; var XtcomVolume = 0.0; try { var quoteXtcom = new CoinQuote { Exchange = "Xt.com", Price = ((XtcomQuote.Current.price * 100000000) / double.Parse(CoinbaseBtcQuote.Current.amount)) / 100000000, Volume = XtcomQuote.Current.moneyVol, TimeStamp = time, USDPrice = XtcomQuote.Current.price }; XtcomPrice = quoteXtcom.Price; XtcomVolume = quoteXtcom.Volume; var totalVolume = XtcomVolume; var quoteAllWeighted = new CoinQuote { Exchange = "All", Price = (XtcomPrice * XtcomVolume / totalVolume), Volume = totalVolume, TimeStamp = time, USDPrice = double.Parse(CoinbaseBtcQuote.Current.amount) * ((XtcomPrice * XtcomVolume / totalVolume)) }; dbContext.CoinQuotes.Add(quoteXtcom); dbContext.CoinQuotes.Add(quoteAllWeighted); dbContext.SaveChangesAsync().Wait(); } catch (Exception ex) { var log = new Log(); log.LogMessage(ex.Message + " " + ex.StackTrace + " " + ex.InnerException); dbContext.Logger.Add(log); dbContext.SaveChangesAsync().Wait(); } // Load latest all Last 15 days CoinQuoteResult.Current = dbContext.CoinQuotes.AsEnumerable().Where(x => x.TimeStamp.ToUniversalTime() > DateTime.Now.AddDays(-15)).ToList(); } } catch (Exception e) { Console.Write(e.InnerException); } }
/// <summary> /// Return a default Coinquote. /// </summary> /// <returns></returns> private CoinQuote DefaultQuote() { var e = new CoinQuote { Volume = 0, USDPrice = 0, Price = 0 }; return(e); }