namespace Octokit { /// /// Represents a product header value. This is used to generate the User Agent string sent with each request. The /// name used should represent the product that's using Octokit.net. /// /// /// This class is a wrapper around /// so that consumers of Octokit.net would not have to add a reference to the System.Net.Http.Headers namespace. /// public class ProductHeaderValue { readonly System.Net.Http.Headers.ProductHeaderValue _productHeaderValue; /// /// Initializes a new instance of the class. /// /// The name of the product that's using Octokit public ProductHeaderValue(string name) : this(new System.Net.Http.Headers.ProductHeaderValue(name)) { } /// /// Initializes a new instance of the class. /// /// The name of the product that's using Octokit /// The version of the product that's using Octokit public ProductHeaderValue(string name, string version) : this(new System.Net.Http.Headers.ProductHeaderValue(name, version)) { } ProductHeaderValue(System.Net.Http.Headers.ProductHeaderValue productHeader) { _productHeaderValue = productHeader; } /// /// The name of the product that's using Octokit /// public string Name { get { return _productHeaderValue.Name; } } /// /// The version of the product. /// public string Version { get { return _productHeaderValue.Version; } } public override bool Equals(object obj) { return _productHeaderValue.Equals(obj); } public override int GetHashCode() { return _productHeaderValue.GetHashCode(); } public override string ToString() { return _productHeaderValue.ToString(); } /// /// Parses a string in the format "foo" or "foo/1.0" and returns the corresponding /// instance. /// /// The input. public static ProductHeaderValue Parse(string input) { return new ProductHeaderValue(System.Net.Http.Headers.ProductHeaderValue.Parse(input)); } /// /// Parses a string in the format "foo" or "foo/1.0" and returns the corresponding /// instance via an out parameter. /// /// The input. /// The parsed value. public static bool TryParse(string input, out ProductHeaderValue parsedValue) { System.Net.Http.Headers.ProductHeaderValue value; var result = System.Net.Http.Headers.ProductHeaderValue.TryParse(input, out value); parsedValue = result ? Parse(input) : null; return result; } } }