/// <summary> /// Retrieves a list of host objects /// </summary> /// <param name="page"> /// The requested page from the server. This is an optional /// argument and if omitted the server will default to returning the /// first page with a maximum of `100` items. /// </param> /// <param name="filter"> /// A filter object to filter the hosts on the /// server.If omitted, the server will return all objects as a /// paginated response. /// </param> /// <param name="sort"> /// A sort definition object to sort the host objects /// on supported properties.If omitted objects are returned in the /// order as they were created in. /// </param> /// <returns>A paginated list of hosts</returns> public HostList GetHosts( PageInput page, HostFilter filter, HostSort sort) { // setup parameter GraphQLParameters parameters = new GraphQLParameters(); parameters.Add("page", page, true); parameters.Add("filter", filter, true); parameters.Add("sort", sort, true); return(RunQuery <HostList>(@"getHosts", parameters)); }
/// <summary> /// Compiles a single filter from a list of filters by combining them /// with a logical AND /// </summary> /// <param name="filters"> /// List of filters to combine /// </param> /// <returns></returns> private HostFilter GenerateFilter(List <HostFilter> filters) { HostFilter result = null; foreach (HostFilter filter in filters) { if (result == null) { result = filter; continue; } filter.And = result; result = filter; } return(result); }
/// <summary> /// Returns true if the url is actually "under" this Affiliate's HostFilter /// </summary> public bool IsValidCallback(string url) { var regex = new Regex(@"^http(|s)://" + HostFilter.Replace(".", @"\.").Replace("*", @".[^\.]*?") + @"/.*?", RegexOptions.IgnoreCase); return(regex.IsMatch(url)); }
/// <summary> /// Performs execution of the command /// </summary> protected override void ProcessRecord() { List <HostFilter> filters = new List <HostFilter>(); if (ParameterPresent("Guid")) { HostFilter f = new HostFilter(); f.HostGuid = new GuidFilter(); f.HostGuid.MustEqual = Guid; filters.Add(f); } if (ParameterPresent("Server")) { HostFilter f = new HostFilter(); f.HostGuid = new GuidFilter(); f.HostGuid.MustEqual = Server.Guid; filters.Add(f); } if (ParameterPresent("Name")) { HostFilter f = new HostFilter(); f.Name = new StringFilter(); f.Name.MustEqual = Name; filters.Add(f); } if (ParameterPresent("BoardSerial")) { HostFilter f = new HostFilter(); f.BoardSerial = new StringFilter(); f.BoardSerial.MustEqual = BoardSerial; filters.Add(f); } if (ParameterPresent("ChassisSerial")) { HostFilter f = new HostFilter(); f.ChassisSerial = new StringFilter(); f.ChassisSerial.MustEqual = ChassisSerial; filters.Add(f); } if (ParameterPresent("Manufacturer")) { HostFilter f = new HostFilter(); f.Manufacturer = new StringFilter(); f.Manufacturer.MustEqual = Manufacturer; filters.Add(f); } if (ParameterPresent("Model")) { HostFilter f = new HostFilter(); f.Model = new StringFilter(); f.Model.MustEqual = Model; filters.Add(f); } if (ParameterPresent("NPod")) { HostFilter f = new HostFilter(); f.NPodGuid = new GuidFilter(); f.NPodGuid.MustEqual = NPod.Guid; filters.Add(f); } HostFilter filter = GenerateFilter(filters); PageInput page = PageInput.First; HostList list = Connection.GetHosts(page, filter, null); foreach (Host item in list.Items) { WriteObject(item); } while (list.More) { // advance the page page.Page = page.Page + 1; list = Connection.GetHosts(page, filter, null); foreach (Host item in list.Items) { WriteObject(item); } } }