/// <summary> /// Create an Address with optional verifications. /// </summary> /// <param name="address">Address to create</param> /// <param name="verify">Verification flags to to control verification. You can verify the delivery address or the /// extended zip4 value. If you use the strict versions an HttpException to be raised if unsucessful. /// </param> /// <returns>Address instance.</returns> public Task <Address> CreateAddress( Address address, VerificationFlags verify = VerificationFlags.None) { var request = new EasyPostRequest("addresses", Method.POST); request.AddBody(address.AsDictionary(), "address"); if ((verify & VerificationFlags.Delivery) != 0) { request.AddParameter("verify[]", "delivery", ParameterType.QueryString); } if ((verify & VerificationFlags.Zip4) != 0) { request.AddParameter("verify[]", "zip4", ParameterType.QueryString); } if ((verify & VerificationFlags.DeliveryStrict) != 0) { request.AddParameter("verify_strict[]", "delivery", ParameterType.QueryString); } if ((verify & VerificationFlags.Zip4Strict) != 0) { request.AddParameter("verify_strict[]", "zip4", ParameterType.QueryString); } return(Execute <Address>(request)); }
/// <summary> /// Generate a postage label for this shipment. /// </summary> /// <param name="id">The id of the shipment to generate the label for</param> /// <param name="fileFormat">Format to generate the label in. Valid formats: "pdf", "zpl" and "epl2".</param> /// <returns>Shipment instance.</returns> public async Task <Shipment> GenerateLabel( string id, string fileFormat) { var request = new EasyPostRequest("shipments/{id}/label"); request.AddUrlSegment("id", id); // This is a GET, but uses the request body, so use ParameterType.GetOrPost instead. request.AddParameter("file_format", fileFormat, ParameterType.GetOrPost); return(await Execute <Shipment>(request)); }
/// <summary> /// Verify an address. /// </summary> /// <returns>Address instance. Check message for verification failures.</returns> public async Task <Address> VerifyAddress( Address address, string carrier = null) { if (address.Id == null) { address = await CreateAddress(address); } var request = new EasyPostRequest("addresses/{id}/verify"); request.RootElement = "address"; request.AddUrlSegment("id", address.Id); if (carrier != null) { request.AddParameter("carrier", carrier, ParameterType.QueryString); } return(await Execute <Address>(request)); }