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); }
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); }