public override Maybe <IHeaderDictionary> TryValidate(
            IHeaderDictionary headers,
            CacheContentValidators response)
        {
            if (headers == null)
            {
                throw new ArgumentNullException(nameof(headers));
            }
            if (response == null)
            {
                throw new ArgumentNullException(nameof(response));
            }

            if (headers.ContainsKey(HeaderNames.IfModifiedSince))
            {
                var modDate = headers[HeaderNames.IfModifiedSince];
                var equal   = response.LastModified.Equals(DateTimeOffset.Parse(modDate));

                return(equal ?
                       Maybe <IHeaderDictionary> .Some(response.GetHeaders()):
                       Maybe <IHeaderDictionary> .None);
            }

            return(base.TryValidate(headers, response));
        }
Ejemplo n.º 2
0
        public override Maybe <IHeaderDictionary> TryValidate(IHeaderDictionary headers, CacheContentValidators response)
        {
            if (headers == null)
            {
                throw new ArgumentNullException(nameof(headers));
            }
            if (response == null)
            {
                throw new ArgumentNullException(nameof(response));
            }

            if (headers.ContainsKey(HeaderNames.IfNoneMatch))
            {
                var eTags     = headers[HeaderNames.IfNoneMatch].ToArray();
                var someEqual = eTags.Any(m =>
                                          m.Equals(response.ETag, StringComparison.InvariantCultureIgnoreCase));

                return(someEqual ?
                       Maybe <IHeaderDictionary> .Some(response.GetHeaders()) :
                       Maybe <IHeaderDictionary> .None);
            }

            return(base.TryValidate(headers, response));
        }