public FormUrlEncodedContent AsFormUrlEncodedContent() { if (!string.IsNullOrEmpty(Id)) { return(new CollectionBuilder().Add("batch[id]".ToKvp(Id)).AsFormUrlEncodedContent()); } var collection = new CollectionBuilder(); if (Shipments != null) { for (var i = 0; i < Shipments.Count; i++) { var keyBase = string.Format("batch[shipment][{0}]", i); collection.AddShipment(keyBase, Shipments[i]); collection.Add("[carrier]".ToKvp(keyBase, Shipments[i].Carrier)); collection.Add("[service]".ToKvp(keyBase, Shipments[i].Service)); } } return(collection.AsFormUrlEncodedContent()); }