Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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));
        }