public void ExportFlexOrder() { var order = new AllfleXML.FlexOrder.OrderHeader { CustomerNumber = "testing", PremiseID = "ABC1234", PO = "123456", ShipToName = "Jane Doe", ShipToContact = "Jane Doe", ShipToPhone = "5551234567", ShipToAddress1 = "Rev. Calvin & Thelma Alcorn", ShipToCity = "Dallas", ShipToState = "TX", ShipToPostalCode = "76021", ShipToCountry = "US", ShipMethod = "UPS", OrderLineHeaders = new List <AllfleXML.FlexOrder.OrderLineHeader> { new AllfleXML.FlexOrder.OrderLineHeader { SkuName = "ANTXLSet3306LA", Quantity = 17, } } }; var doc = AllfleXML.FlexOrder.Parser.Export(order); Assert.IsNotNull(doc); var result = AllfleXML.FlexOrder.Parser.Validate(doc); Assert.IsTrue(result.Item1); }
public void SaveFlexOrder() { var order = new AllfleXML.FlexOrder.OrderHeader { CustomerNumber = "testing", PremiseID = "ABC1234", PO = "123456", ShipToName = "Jane Doe", ShipToContact = "Jane Doe", ShipToPhone = "5551234567", ShipToAddress1 = "Rev. Calvin & Thelma Alcorn", ShipToCity = "Dallas", ShipToState = "TX", ShipToPostalCode = "76021", ShipToCountry = "US", ShipMethod = "UPS", OrderLineHeaders = new List <AllfleXML.FlexOrder.OrderLineHeader> { new AllfleXML.FlexOrder.OrderLineHeader { SkuName = "ANTXLSet3306LA", Quantity = 17, } } }; var doc = AllfleXML.FlexOrder.Parser.Export(order); Assert.IsNotNull(doc); var isValid1 = AllfleXML.FlexOrder.Parser.Validate(doc); Assert.IsTrue(isValid1.Item1); const string fileName = "testFlexOrder.xml"; order.Save(fileName); Assert.IsTrue(File.Exists(fileName)); var isValid2 = AllfleXML.FlexOrder.Parser.Validate(fileName); Assert.IsTrue(isValid2.Item1); var document = AllfleXML.FlexOrder.Parser.Import(fileName); Assert.IsNotNull(document); Assert.IsTrue(document.OrderHeaders.Any()); Assert.IsTrue(document.OrderHeaders.Select(o => o.OrderLineHeaders.Any()).All(o => o)); File.Delete(fileName); Assert.IsFalse(File.Exists(fileName)); }
/// <summary> /// Posts the order to flex service asynchronous. /// </summary> /// <param name="order">The order.</param> /// <returns></returns> /// <exception cref="Exception"></exception> public async Task <AllfleXML.FlexOrder.OrderHeader> PostOrderAsync(AllfleXML.FlexOrder.OrderHeader order) { var endpoint = "api/orders"; var putMessage = new StringContent(order.Export().ToString(), Encoding.UTF8, "text/xml"); var response = await _client.PostAsync(endpoint, putMessage); if (!response.IsSuccessStatusCode) { var httpErrorObject = await response.Content.ReadAsStringAsync(); var uri = new Uri(_client.BaseAddress, endpoint); throw new Exception($"Bad response from {uri.ToString()}: {response.StatusCode} - {response.ReasonPhrase}\nThere was an issue saving the purchase order {order.PO} to the Allflex Order API\n{httpErrorObject}"); } var result = await response.Content.ReadAsStringAsync(); return(AllfleXML.FlexOrder.Parser.Import(XDocument.Parse(result)).OrderHeaders.SingleOrDefault()); }
/// <summary> /// Posts the order to flex service. /// </summary> /// <param name="order">The order.</param> /// <returns></returns> /// <exception cref="Exception"></exception> public AllfleXML.FlexOrder.OrderHeader PostOrder(AllfleXML.FlexOrder.OrderHeader order) { return(PostOrderAsync(order).Result); }
public static void Save(this OrderHeader order, string xmlFilePath) { var doc = Export(order); doc.Save(xmlFilePath); }