Пример #1
0
        private void IncrementHourlyCounter()
        {
            DateTime      now  = DateTime.UtcNow;
            DateTime      ts   = new DateTime(now.Year, now.Month, now.Day, now.Hour, 0, 0);
            CounterHourly cntr = (CounterHourly)Session.CreateCriteria(typeof(CounterHourly))
                                 .Add(Expression.Eq("Timestamp", ts))
                                 .UniqueResult();

            if (cntr == null)
            {
                cntr           = new CounterHourly();
                cntr.Timestamp = ts;
                cntr.Total     = 0;
            }

            cntr.Total++;
            Session.Save(cntr);
        }
Пример #2
0
        public List <TransitSummarizedCounter> GetSummaryHourly()
        {
            List <TransitSummarizedCounter> result = new List <TransitSummarizedCounter>();
            DateTime now = DateTime.UtcNow;
            DateTime ts  = now.AddHours(-24);

            while (ts <= now)
            {
                DateTime      ts_current = new DateTime(ts.Year, ts.Month, ts.Day, ts.Hour, 0, 0);
                CounterHourly c          = (CounterHourly)Session.CreateCriteria(typeof(CounterHourly))
                                           .Add(Expression.Eq("Timestamp", ts_current))
                                           .UniqueResult();

                result.Add((c == null) ? new TransitSummarizedCounter(ts_current, 0) : new TransitSummarizedCounter(c.Timestamp, c.Total));
                ts = ts.AddHours(1);
            }

            return(result);
        }