Exemple #1
0
        /// <summary>
        /// Parses a <paramref name="range"/> into a new <see cref="HttpRange"/> instance
        /// </summary>
        /// <remarks>
        /// The range must be in the form <code>unit=(range)+</code>
        /// </remarks>
        /// <param name="range">The range to parse</param>
        /// <returns>The new <see cref="HttpRange"/></returns>
        public static HttpRange Parse(string range)
        {
            var parts      = range.Split(_splitEqualChar, 2);
            var unit       = parts[0];
            var rangeItems = parts[1].Split(',').Select(x => HttpRangeItem.Parse(x.Trim())).ToArray();

            return(new HttpRange(unit, true, rangeItems));
        }
Exemple #2
0
 /// <summary>
 /// Returns the textual representation of a single <see cref="HttpRangeItem"/>
 /// </summary>
 /// <remarks>
 /// The return value of this function looks like <code>unit range/length</code>
 /// </remarks>
 /// <param name="rangeItem">The <see cref="HttpRangeItem"/> to get the textual representation for</param>
 /// <returns>The textual representation of <paramref name="rangeItem"/></returns>
 public virtual string ToString([NotNull] HttpRangeItem rangeItem)
 {
     return(ToString(rangeItem, null));
 }
Exemple #3
0
 /// <summary>
 /// Returns the textual representation of a single <see cref="HttpRangeItem"/>
 /// </summary>
 /// <remarks>
 /// The return value of this function looks like <code>unit range/length</code>
 /// </remarks>
 /// <param name="rangeItem">The <see cref="HttpRangeItem"/> to get the textual representation for</param>
 /// <param name="length">The length value to be used in the textual representation</param>
 /// <returns>The textual representation of <paramref name="rangeItem"/></returns>
 public virtual string ToString([NotNull] HttpRangeItem rangeItem, long?length)
 {
     return($"{Unit} {rangeItem}/{(length.HasValue ? length.Value.ToString(CultureInfo.InvariantCulture) : "*")}");
 }