Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        /// <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());
        }
Ejemplo n.º 4
0
 /// <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);
 }
Ejemplo n.º 5
0
        public static void Save(this OrderHeader order, string xmlFilePath)
        {
            var doc = Export(order);

            doc.Save(xmlFilePath);
        }