/// <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));
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        /// <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));
        }
Пример #4
0
        /// <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);
                }
            }
        }