System.Net.Http.Headers.CacheControlHeaderValue.TrySetCacheControlValues C# (CSharp) Method

TrySetCacheControlValues() private static method

private static TrySetCacheControlValues ( CacheControlHeaderValue cc, List nameValueList ) : bool
cc CacheControlHeaderValue
nameValueList List
return bool
        private static bool TrySetCacheControlValues(CacheControlHeaderValue cc,
            List<NameValueHeaderValue> nameValueList)
        {
            foreach (NameValueHeaderValue nameValue in nameValueList)
            {
                bool success = true;
                string name = nameValue.Name.ToLowerInvariant();

                switch (name)
                {
                    case noCacheString:
                        success = TrySetOptionalTokenList(nameValue, ref cc._noCache, ref cc._noCacheHeaders);
                        break;

                    case noStoreString:
                        success = TrySetTokenOnlyValue(nameValue, ref cc._noStore);
                        break;

                    case maxAgeString:
                        success = TrySetTimeSpan(nameValue, ref cc._maxAge);
                        break;

                    case maxStaleString:
                        success = ((nameValue.Value == null) || TrySetTimeSpan(nameValue, ref cc._maxStaleLimit));
                        if (success)
                        {
                            cc._maxStale = true;
                        }
                        break;

                    case minFreshString:
                        success = TrySetTimeSpan(nameValue, ref cc._minFresh);
                        break;

                    case noTransformString:
                        success = TrySetTokenOnlyValue(nameValue, ref cc._noTransform);
                        break;

                    case onlyIfCachedString:
                        success = TrySetTokenOnlyValue(nameValue, ref cc._onlyIfCached);
                        break;

                    case publicString:
                        success = TrySetTokenOnlyValue(nameValue, ref cc._publicField);
                        break;

                    case privateString:
                        success = TrySetOptionalTokenList(nameValue, ref cc._privateField, ref cc._privateHeaders);
                        break;

                    case mustRevalidateString:
                        success = TrySetTokenOnlyValue(nameValue, ref cc._mustRevalidate);
                        break;

                    case proxyRevalidateString:
                        success = TrySetTokenOnlyValue(nameValue, ref cc._proxyRevalidate);
                        break;

                    case sharedMaxAgeString:
                        success = TrySetTimeSpan(nameValue, ref cc._sharedMaxAge);
                        break;

                    default:
                        cc.Extensions.Add(nameValue); // success is always true
                        break;
                }

                if (!success)
                {
                    return false;
                }
            }

            return true;
        }