Beispiel #1
0
        public void Save(UsageRow usage)
        {
            UsageDataContext dc = CreateDataContext();

            dc.AddObject(UsageDataContext.UsageTable, usage);
            dc.SaveChanges();
        }
Beispiel #2
0
        public List <UsageRow> GetRows(Guid uploadId, DateTime utcStart, DateTime utcEnd)
        {
            var utcStartTicks = utcStart.Ticks.ToString(CultureInfo.InvariantCulture);
            var utcEndTicks   = utcEnd.Ticks.ToString(CultureInfo.InvariantCulture);

            string key = string.Format("{0}{1}{2}", uploadId, utcStartTicks, utcEndTicks);

            object cachedValue = HttpContext.Current.Cache[key];

            if (cachedValue != null)
            {
                return((List <UsageRow>)cachedValue);
            }

            UsageDataContext dc        = CreateDataContext();
            List <UsageRow>  usageRows = dc.Usage.Where(u => u.PartitionKey == uploadId.ToString()
                                                        &&
                                                        String.Compare(u.RowKey, utcStartTicks, StringComparison.InvariantCulture) >= 0
                                                        &&
                                                        String.Compare(u.RowKey, utcEndTicks, StringComparison.InvariantCulture) <= 0)
                                         .AsTableServiceQuery().ToList();

            HttpContext.Current.Cache.Add(key, usageRows,
                                          null,
                                          DateTime.Now.AddMinutes(9),
                                          Cache.NoSlidingExpiration,
                                          CacheItemPriority.High, null);

            //HttpContext.Current.Cache[key] = usageRows;

            return(usageRows);
        }