Esempio n. 1
0
        public static ContentRange Parse(string value)
        {
            if (!value.StartsWithInvariant("bytes "))
            {
                throw new FormatException();
            }
            value = value.Substring(6);
            var parts = value.Split('-', '/');

            if (parts.Length <= 1 || parts.Length > 3)
            {
                throw new FormatException(value);
            }
            var r = new ContentRange();

            if (parts.Length == 2)
            {
                if (parts[0] != "*")
                {
                    throw new FormatException(parts[0]);
                }
                r.RangeIsStar = true;
            }
            else
            {
                r.FirstBytePosition = int.Parse(parts[0], CultureInfo.InvariantCulture);
                r.LastBytePosition  = int.Parse(parts[1], CultureInfo.InvariantCulture);
            }

            if (parts.Last() == "*")
            {
                r.LengthIsStar = true;
            }
            else
            {
                r.Length = int.Parse(parts.Last(), CultureInfo.InvariantCulture);
            }
            return(r);
        }
Esempio n. 2
0
        public static ContentRange Parse(string value)
        {
            if (!value.StartsWithInvariant("bytes "))
            {
                throw new FormatException();
            }
            value = value.Substring(6);
            var parts = value.Split('-', '/');
            if (parts.Length <= 1 || parts.Length > 3)
            {
                throw new FormatException(value);
            }
            var r = new ContentRange();
            if (parts.Length == 2)
            {
                if (parts[0] != "*")
                {
                    throw new FormatException(parts[0]);
                }
                r.RangeIsStar = true;
            }
            else
            {
                r.FirstBytePosition = int.Parse(parts[0], CultureInfo.InvariantCulture);
                r.LastBytePosition = int.Parse(parts[1], CultureInfo.InvariantCulture);
            }

            if (parts.Last() == "*")
            {
                r.LengthIsStar = true;
            }
            else
            {
                r.Length = int.Parse(parts.Last(), CultureInfo.InvariantCulture);
            }
            return r;
        }