예제 #1
0
        private StoreExpiryStateData _GetStateData()
        {
            StoreExpiryStateData stateData = null;

            Serializer.Deserialize <StoreExpiryStateData>(Provider.Get(StoreExpiryStateDataKey));
            if (stateData == null)
            {
                stateData = new StoreExpiryStateData()
                {
                    SequenceCurrentVal = Provider.GetNextSequenceValue(StoreExpirySequenceKey, 1),
                    LastUpdated        = DateTime.UtcNow,
                    WindowStart        = DateTime.UtcNow
                };
                Provider.Set(StoreExpiryStateDataKey, Serializer.Serialize(stateData));
            }
            return(stateData);
        }
예제 #2
0
        private ulong _GetWindow(DateTime date, StoreExpiryStateData stateData)
        {
            var windowStartDate = stateData.WindowStart;

            if (date < windowStartDate)
            {
                throw new Exception("Date is less than current date");
            }

            ulong i = stateData.SequenceCurrentVal;

            while (date > windowStartDate)
            {
                windowStartDate = windowStartDate + WindowResolution;
                i++;
            }
            return(i);
        }