Beispiel #1
0
        public static async Task <InstalmentLink[]> RetrieveMany(
            Session session,
            Int64?supplierId = null,
            Int32 offset     = 0,
            Int32 limit      = 20,
            Order order      = Order.ASCENDING,
            InstalmentLink.OrderBy orderBy = InstalmentLink.OrderBy.CREATED,
            String publicId = null
            )
        {
            List <QueryParameter> parameters = new List <QueryParameter>();

            parameters.Add(new QueryParameter(offset, "offset"));
            parameters.Add(new QueryParameter(limit, "limit"));
            parameters.Add(new QueryParameter(order));
            parameters.Add(new QueryParameter(orderBy));

            if (supplierId != null)
            {
                parameters.Add(
                    new QueryParameter(supplierId ?? 0, "supplier_id")
                    );
            }

            if (publicId != null)
            {
                parameters.Add(
                    new QueryParameter(publicId, "public_id")
                    );
            }


            String resultBody = await ApiRequest.Make(
                path : InstalmentLink.path + "/list",
                query : new QueryString(parameters),
                session : session,
                method : HttpMethod.Get
                );

            var decodePayload = ApiRequest.DecodeResponse <DecodeArrayPayload>(
                resultBody
                );

            var resultList = new List <InstalmentLink>();

            foreach (InstalmentLink.DecodePayload link in decodePayload)
            {
                resultList.Add(new InstalmentLink(
                                   link.public_id,
                                   link.supplier,
                                   link.invitee_email,
                                   Convert.ToDecimal(link.invoice_amount),
                                   link.invoice_identifier
                                   ));
                continue;
            }

            return(resultList.ToArray());
        }
 internal QueryParameter(InstalmentLink.OrderBy value)
 {
     this.key = "order_by";
     if (value == InstalmentLink.OrderBy.CREATED)
     {
         this.value = "created";
         return;
     }
     throw new ApiRequestException();
 }