public override void Execute() { ExchangeHistory exchangeHistory = null; lock (LockObject) { exchangeHistory = DocumentSession.Load <ExchangeHistory>(ExchangeHistory.DbId(Date)); if (exchangeHistory != null) { return; } exchangeHistory = new ExchangeHistory { Date = Date }; DocumentSession.Store(exchangeHistory); DocumentSession.SaveChanges(); } new ExchangeHistoryService().Run(exchangeHistory); }
private static void SetupDocumentStore() { if (DocumentStore != null) { return; } DocumentStore = new DocumentStore { Urls = new string[] { "http://localhost:8080" /*ConfigurationManager.AppSettings["DatabaseUrl"]*/ }, Database = "poe-analyzer" /*ConfigurationManager.AppSettings["DatabaseName"]*/, Conventions = new DocumentStoreConventionSetup().Setup(), }; DocumentStore.Conventions.RegisterAsyncIdConvention <ExchangeHistory>((db, item) => Task.FromResult(ExchangeHistory.DbId(item.Date))); DocumentStore.Initialize(); SetupIndexes(); }
public IActionResult Index() { var date = DateTime.Today; var exchangeHistory = DocumentSession.Load <ExchangeHistory>(ExchangeHistory.DbId(date)); if (exchangeHistory == null) { exchangeHistory = new ExchangeHistory { Date = date, }; TaskService.ExecuteLater(new FetchAndStoreExchangeHistoryTask(date)); } var model = new ExchangeHistoryViewModel { Date = exchangeHistory.Date, LastFetchDateTimeUtc = exchangeHistory.LastFetchDateTimeUtc, CompletedOnDateTimeUtc = exchangeHistory.CompletedOnDateTimeUtc, }; foreach (var item in exchangeHistory.Items) { if (item.Type == "Skill Gem") { continue; } var averageValueFirstTwoDays = item.AverageValue(2); if (averageValueFirstTwoDays == 0) { averageValueFirstTwoDays = 1m; } //if(averageValueFirstTwoDays > 30) //{ // continue; //} var averageValueLastTwoDays = item.AverageValue(exchangeHistory.Items.Count - 3, 2); //if(averageValueLastTwoDays < 50) //{ // continue; //} var averageValueFirstWeek = item.AverageValue(7); if (averageValueFirstWeek == 0) { averageValueFirstWeek = 1m; } var averageValueLastWeek = item.AverageValue(exchangeHistory.Items.Count - 8, 7); var i = new ExchangeHistoryViewModel.ItemData { Type = item.Type, Name = item.Name, AverageValueFirstTwoDaysString = averageValueFirstTwoDays.ToString("##.##"), AverageValueLastTwoDaysString = averageValueLastTwoDays.ToString("##.##"), IncreaseFromFirstTwoDays = (averageValueLastTwoDays / averageValueFirstTwoDays * 100), AverageValueFirstWeekString = averageValueFirstWeek.ToString("##.##"), AverageValueLastWeekString = averageValueLastWeek.ToString("##.##"), IncreaseFromFirstWeek = (averageValueLastWeek / averageValueFirstWeek * 100), }; i.IncreaseFromFirstTwoDaysString = i.IncreaseFromFirstTwoDays.ToString("##.##"); i.IncreaseFromFirstWeekString = i.IncreaseFromFirstWeek.ToString("##.##"); model.Items.Add(i); } return(View(model)); }