/// <summary>
 /// 将日期、各种编码,编码进frame
 /// </summary>
 /// <param name="frame"></param>
 /// <param name="isSequence"></param>
 internal override void Encode(Frame frame, bool isSequence = false)
 {
     //不编码地址,直接编码内容
     frame.SetNextByte(BeginAddress);
     frame.SetNextByte(EndAddress);
     frame.AppendBytes(SpecificTime.GetEncodedValue());
 }
 /// <summary>
 ///     Cache item until absolute expiration 2012/01/01 @ 17h45
 /// </summary>
 /// <param name="year">2012</param>
 /// <param name="month">1</param>
 /// <param name="day">1</param>
 /// <param name="hour">17</param>
 /// <param name="minute">45</param>
 /// <param name="second">0</param>
 public CacheOutputUntilAttribute(int year,
                                  int month,
                                  int day,
                                  int hour   = 0,
                                  int minute = 0,
                                  int second = 0)
 {
     CacheTimeQuery = new SpecificTime(year, month, day, hour, minute, second);
 }
 /// <summary>
 ///     Cache item until absolute expiration 2012/01/01 @ 17h45
 /// </summary>
 /// <param name="year">2012</param>
 /// <param name="month">1</param>
 /// <param name="day">1</param>
 /// <param name="hour">17</param>
 /// <param name="minute">45</param>
 /// <param name="second">0</param>
 public CacheOutputUntilAttribute(int year,
                                  int month,
                                  int day,
                                  int hour = 0,
                                  int minute = 0,
                                  int second = 0)
 {
     CacheTimeQuery = new SpecificTime(year, month, day, hour, minute, second);
 }
 public void maxage_mustrevalidate_headers_correct_with_cacheuntil()
 {
     var client = new HttpClient(_server);
     var result = client.GetAsync(_url + "Get_until25012015_1700").Result;
     var clientTimeSpanSeconds = new SpecificTime(2015, 01, 25, 17, 0, 0).Execute(DateTime.Now).ClientTimeSpan.TotalSeconds;
     var resultCacheControlSeconds = ((TimeSpan) result.Headers.CacheControl.MaxAge).TotalSeconds;
     Assert.IsTrue(Math.Round(clientTimeSpanSeconds - resultCacheControlSeconds) == 0);
     Assert.IsFalse(result.Headers.CacheControl.MustRevalidate);
 }
Beispiel #5
0
        /// <summary>
        /// Delay first execution of the task for the specified time interval.
        /// </summary>
        public static DelayTimeUnit DelayFor(this SpecificTime time, int interval)
        {
            if (time == null)
            {
                throw new ArgumentNullException("time");
            }

            return(DelayFor(time.Schedule, interval));
        }
Beispiel #6
0
        public void maxage_mustrevalidate_headers_correct_with_cacheuntil()
        {
            var client = new HttpClient(_server);
            var result = client.GetAsync(_url + "Get_until25012015_1700").Result;
            var clientTimeSpanSeconds     = new SpecificTime(2015, 01, 25, 17, 0, 0).Execute(DateTime.Now).ClientTimeSpan.TotalSeconds;
            var resultCacheControlSeconds = ((TimeSpan)result.Headers.CacheControl.MaxAge).TotalSeconds;

            Assert.IsTrue(Math.Round(clientTimeSpanSeconds - resultCacheControlSeconds) == 0);
            Assert.IsFalse(result.Headers.CacheControl.MustRevalidate);
        }
 /// <summary>
 /// 将日期、各种编码,编码进frame
 /// </summary>
 /// <param name="frame"></param>
 /// <param name="isSequence"></param>
 internal override void Encode(Frame frame, bool isSequence = false)
 {
     //不编码地址,直接编码内容
     frame.AppendBytes(SpecificTime.GetEncodedValue());
 }