Example #1
0
        /// <summary>
        /// Performs execution of the command
        /// </summary>
        protected override void ProcessRecord()
        {
            try
            {
                List <SpuFilter> filters = new List <SpuFilter>();

                if (ParameterPresent("SpuSerial"))
                {
                    SpuFilter f = new SpuFilter();
                    f.Serial           = new StringFilter();
                    f.Serial.MustEqual = SpuSerial;
                    filters.Add(f);
                }

                if (ParameterPresent("Unused"))
                {
                    SpuFilter f = new SpuFilter();
                    f.NotInNPod = true;
                    filters.Add(f);
                }

                // convert to filter
                SpuFilter filter = GenerateFilter(filters);

                SpuSort sort = new SpuSort();
                sort.Serial = SortDirection.Ascending;

                PageInput page = PageInput.First;
                SpuList   list = Connection.GetSpus(page, filter, sort);

                foreach (Spu item in list.Items)
                {
                    WriteObject(item);
                }

                while (list.More)
                {
                    // advance the page
                    page.Page = page.Page + 1;

                    list = Connection.GetSpus(page, filter, sort);
                    foreach (Spu item in list.Items)
                    {
                        WriteObject(item);
                    }
                }
            }
            catch (AggregateException exceptions)
            {
                foreach (Exception ex in exceptions.InnerExceptions)
                {
                    WriteError(ex);
                }
            }
            catch (Exception ex)
            {
                WriteError(ex);
            }
        }
        /// <summary>
        /// Retrieves a list of SPUs
        /// </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 SPUs 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 SPU objects on supported
        /// properties. If omitted objects are returned in the order as they
        /// were created in.
        /// </param>
        /// <returns></returns>
        public SpuList GetSpus(PageInput page = null, SpuFilter filter = null, SpuSort sort = null)
        {
            // prepare parameters
            GraphQLParameters parameters = new GraphQLParameters();

            parameters.Add("page", page, true);
            parameters.Add("filter", filter, true);
            parameters.Add("sort", sort, true);

            return(RunQuery <SpuList>(@"getSPUs", parameters));
        }
Example #3
0
        private SpuFilter GenerateFilter(List <SpuFilter> filters)
        {
            SpuFilter result = null;

            foreach (SpuFilter filter in filters)
            {
                if (result == null)
                {
                    result = filter;
                    continue;
                }

                filter.And = result;
                result     = filter;
            }

            return(result);
        }