public static bool IsRangeHeaderCorrect(this HttpRequestHeaders headerCollection, long fileLen)
        {
            RangeHeaderValue     rangeHeader             = headerCollection.Range;
            bool                 unitIsNotbytes          = rangeHeader.Unit != "bytes";
            bool                 multipleRanges          = rangeHeader.Ranges.Count > 1;
            RangeItemHeaderValue range                   = rangeHeader.Ranges.First();
            bool                 start_end_fileLen_error = !(range.RangeHeaderStart(fileLen) < fileLen && range.RangeHeaderEnd(fileLen) < fileLen);

            return(!(unitIsNotbytes || multipleRanges || start_end_fileLen_error));
        }
        public static bool IsRangeHeaderCorrect(this WebHeaderCollection headerCollection, long fileLen)
        {
            RangeHeaderValue rangeHeader = new RangeHeaderValue();

            if (!RangeHeaderValue
                .TryParse(headerCollection[HttpRequestHeader.Range], out rangeHeader))
            {
                return(false);
            }
            bool unitIsNotbytes          = rangeHeader.Unit != "bytes";
            bool multipleRanges          = rangeHeader.Ranges.Count > 1;
            RangeItemHeaderValue range   = rangeHeader.Ranges.First();
            bool start_end_fileLen_error = !(range.RangeHeaderStart(fileLen) < fileLen && range.RangeHeaderEnd(fileLen) < fileLen);

            return(!(unitIsNotbytes || multipleRanges || start_end_fileLen_error));
        }