/// <summary> /// Retrieves a list of datacenter 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 <c>100</c> items. /// </param> /// <param name="filter"> /// A filter object to filter the datacenters 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 datacenter objects /// on supported properties. If omitted objects are returned in the /// order as they were created in. /// </param> /// <returns></returns> public DataCenterList GetDataCenters( PageInput page = null, DataCenterFilter filter = null, DataCenterSort sort = null ) { // setup parameters GraphQLParameters parameters = new GraphQLParameters(); parameters.Add("page", page, true); parameters.Add("filter", filter, true); parameters.Add("sort", sort, true); return(RunQuery <DataCenterList>(@"getDataCenters", parameters)); }
/// <summary> /// Performs execution of the command /// </summary> protected override void ProcessRecord() { List <DataCenterFilter> filters = new List <DataCenterFilter>(); if (ParameterPresent("Guid")) { DataCenterFilter f = new DataCenterFilter(); f.DataCenterGuid = new GuidFilter(); f.DataCenterGuid.MustEqual = Guid; filters.Add(f); } if (ParameterPresent("Name")) { DataCenterFilter f = new DataCenterFilter(); f.Name = new StringFilter(); f.Name.MustEqual = Name; filters.Add(f); } // convert to filter DataCenterFilter filter = GenerateFilter(filters); // setup sorting DataCenterSort sort = new DataCenterSort(); sort.Name = Sort; PageInput page = PageInput.First; DataCenterList list = Connection.GetDataCenters(page, filter, sort); foreach (DataCenter item in list.Items) { WriteObject(item); } while (list.More) { // advance the page page.Page = page.Page + 1; list = Connection.GetDataCenters(page, filter, sort); foreach (DataCenter item in list.Items) { WriteObject(item); } } }