public void ExportLaserTag() { var order = new AllfleXML.LaserTag.OrderHeader { CustomerNumber = "testing", Comments = "PIN:005S55A", OrderBy = "BH", OrderDate = "031316", OrderType = "ST", PO = "TESTTSU4", PremiseId = "005S55A", ShipToAddress1 = "ATTN BOB LITTLE", ShipToAddress2 = "664 E BLUE SKU ST", ShipToCity = "SHAWANO", ShipToCountry = "USA", ShipToName = "CRI", ShipToState = "WI", ShipToZipCode = "54166", OrderLineHeaders = new List <AllfleXML.LaserTag.OrderLineHeader> { new AllfleXML.LaserTag.OrderLineHeader { QTY = "1", SKU = "TSUGNXUSDATXF2/LM-PK", DeliveryRemarks = "1@ S: M:101 L:150", OrderLineTemplateDetails = new List <AllfleXML.LaserTag.LineTemplateDetail> { new AllfleXML.LaserTag.LineTemplateDetail { SKU = "TSUGNXUSDATXF2/LM-PK", Variables = new [] { "var1", "var2" } } } } } }; var doc = AllfleXML.LaserTag.Parser.Export(order); Assert.IsNotNull(doc); var isValid = AllfleXML.LaserTag.Parser.Validate(doc); Assert.IsTrue(isValid); }
private static OrderHeader ParseHeaderString(string orderString) { var fields = orderString.Split('þ'); // "https://en.wikipedia.org/wiki/Thorn_(letter)" var orderLineType = fields[0]; // should be SOH; if (!orderLineType.Equals(OrderHeaderLineType)) { throw new Exception("That is not the header string!"); } var result = new OrderHeader(); if (!fields.Any()) { return(result); } result.OrderLineHeaders = new List <OrderLineHeader>(); if (fields.Length > 1) { result.CustomerNumber = fields[1]; } if (fields.Length > 2) { result.OrderDate = fields[2]; } if (fields.Length > 3) { result.OrderBy = fields[3]; } if (fields.Length > 4) { result.Comments = fields[4]; // TODO: IMPROVE var premiseId = result.Comments.Replace("PIN:", ""); if (premiseId.Contains("NEED PREMISE ID FOR NEXT ORDER") || premiseId.Contains("Replacement Tag Order for PO:") || premiseId.Contains("REPLACEMENT TAGS")) { premiseId = string.Empty; } premiseId = premiseId.Replace("PIN-", "").Replace(" ", "").Trim(); result.PremiseId = premiseId; } if (fields.Length > 5) { result.ShipVia = fields[5]; } if (fields.Length > 6) { result.ShipComp = fields[6]; } if (fields.Length > 7) { result.POBPoint = fields[7]; } if (fields.Length > 8) { result.TermsCode = fields[8]; } if (fields.Length > 9) { result.PO = fields[9]; } if (fields.Length > 10) { result.PickDate = fields[10]; } if (fields.Length > 11) { result.ExtraChargeCode = fields[11]; } if (fields.Length > 12) { result.ExtraChargeAccount = fields[12]; } if (fields.Length > 13) { result.TaxCode = fields[13]; } if (fields.Length > 14) { result.SalesRepCode = fields[14]; } if (fields.Length > 15) { result.OrderType = fields[15]; } if (fields.Length > 16) { result.OrderClass = fields[16]; } if (fields.Length > 17) { result.SalesRepCommission = fields[17]; } if (fields.Length > 18) { result.CommissionCode = fields[18]; } if (fields.Length > 19) { result.PickPriorityCode = fields[19]; } if (fields.Length > 20) { result.DueDate = fields[20]; } if (fields.Length > 21) { result.DivisionCode = fields[21]; } if (fields.Length > 22) { result.UnknownFeild01 = fields[22]; } if (fields.Length > 23) { result.UnknownFeild02 = fields[23]; } if (fields.Length > 24) { result.UnknownFeild03 = fields[24]; } if (fields.Length > 25) { result.UnknownFeild04 = fields[25]; } if (fields.Length > 26) { result.UnknownFeild05 = fields[26]; } if (fields.Length > 27) { result.UnknownFeild06 = fields[27]; } if (fields.Length > 28) { result.UnknownFeild07 = fields[28]; } if (fields.Length > 29) { result.UnknownFeild08 = fields[29]; } if (fields.Length > 30) { result.UnknownFeild09 = fields[30]; } if (fields.Length > 31) { result.UnknownFeild10 = fields[31]; } if (fields.Length > 32) { result.UnknownFeild11 = fields[32]; } if (fields.Length > 33) { result.UnknownFeild12 = fields[33]; } if (fields.Length > 34) { result.BookFacCode = fields[34]; } if (fields.Length > 35) { result.DirShipFlag = fields[35]; } if (fields.Length > 36) { result.ShipToName = fields[36]; } if (fields.Length > 37) { result.ShipToAddress1 = fields[37]; } if (fields.Length > 38) { result.ShipToAddress2 = fields[38]; } if (fields.Length > 39) { result.ShipToCity = fields[39]; } if (fields.Length > 40) { result.ShipToState = fields[40]; } if (fields.Length > 41) { result.ShipToZipCode = fields[41]; } if (fields.Length > 42) { result.ShipToCountry = fields[42]; } if (fields.Length > 43) { result.ShipToCode = fields[43]; } if (fields.Length > 44) { result.RushOrder = fields[44]; } return(result); }
public static void Save(this OrderHeader order, string xmlFilePath) { var doc = Export(order); doc.Save(xmlFilePath); }
public static FlexOrder.OrderHeader ToFlexOrder(this OrderHeader order) { #region User Defined Fields var fields = new FlexOrder.UserDefinedFields { Fields = new List <FlexOrder.UserDefinedField>() }; //OrderDate if (!string.IsNullOrWhiteSpace(order.OrderDate)) { fields.Fields.Add(new FlexOrder.UserDefinedField { Key = "OrderDate", Value = order.OrderDate }); } //OrderBy if (!string.IsNullOrWhiteSpace(order.OrderBy)) { fields.Fields.Add(new FlexOrder.UserDefinedField { Key = "OrderBy", Value = order.OrderBy }); } //Comments if (!string.IsNullOrWhiteSpace(order.Comments)) { fields.Fields.Add(new FlexOrder.UserDefinedField { Key = "Comments", Value = order.Comments }); } //ShipComp if (!string.IsNullOrWhiteSpace(order.ShipComp)) { fields.Fields.Add(new FlexOrder.UserDefinedField { Key = "ShipComp", Value = order.ShipComp }); } //POBPoint if (!string.IsNullOrWhiteSpace(order.POBPoint)) { fields.Fields.Add(new FlexOrder.UserDefinedField { Key = "POBPoint", Value = order.POBPoint }); } //TermsCode if (!string.IsNullOrWhiteSpace(order.TermsCode)) { fields.Fields.Add(new FlexOrder.UserDefinedField { Key = "TermsCode", Value = order.TermsCode }); } //PickDate if (!string.IsNullOrWhiteSpace(order.PickDate)) { fields.Fields.Add(new FlexOrder.UserDefinedField { Key = "PickDate", Value = order.PickDate }); } //ExtraChargeCode if (!string.IsNullOrWhiteSpace(order.ExtraChargeCode)) { fields.Fields.Add(new FlexOrder.UserDefinedField { Key = "ExtraChargeCode", Value = order.ExtraChargeCode }); } //ExtraChargeAccount if (!string.IsNullOrWhiteSpace(order.ExtraChargeAccount)) { fields.Fields.Add(new FlexOrder.UserDefinedField { Key = "ExtraChargeAccount", Value = order.ExtraChargeAccount }); } //TaxCode if (!string.IsNullOrWhiteSpace(order.TaxCode)) { fields.Fields.Add(new FlexOrder.UserDefinedField { Key = "TaxCode", Value = order.TaxCode }); } //SalesRepCode if (!string.IsNullOrWhiteSpace(order.SalesRepCode)) { fields.Fields.Add(new FlexOrder.UserDefinedField { Key = "SalesRepCode", Value = order.SalesRepCode }); } //OrderType if (!string.IsNullOrWhiteSpace(order.OrderType)) { fields.Fields.Add(new FlexOrder.UserDefinedField { Key = "OrderType", Value = order.OrderType }); } //OrderClass if (!string.IsNullOrWhiteSpace(order.OrderClass)) { fields.Fields.Add(new FlexOrder.UserDefinedField { Key = "OrderClass", Value = order.OrderClass }); } //SalesRepCommission if (!string.IsNullOrWhiteSpace(order.SalesRepCommission)) { fields.Fields.Add(new FlexOrder.UserDefinedField { Key = "SalesRepCommission", Value = order.SalesRepCommission }); } //CommissionCode if (!string.IsNullOrWhiteSpace(order.CommissionCode)) { fields.Fields.Add(new FlexOrder.UserDefinedField { Key = "CommissionCode", Value = order.CommissionCode }); } //PickPriorityCode if (!string.IsNullOrWhiteSpace(order.PickPriorityCode)) { fields.Fields.Add(new FlexOrder.UserDefinedField { Key = "PickPriorityCode", Value = order.PickPriorityCode }); } //DueDate if (!string.IsNullOrWhiteSpace(order.DueDate)) { fields.Fields.Add(new FlexOrder.UserDefinedField { Key = "DueDate", Value = order.DueDate }); } //DivisionCode if (!string.IsNullOrWhiteSpace(order.DivisionCode)) { fields.Fields.Add(new FlexOrder.UserDefinedField { Key = "DivisionCode", Value = order.DivisionCode }); } //UnknownFeild01 if (!string.IsNullOrWhiteSpace(order.UnknownFeild01)) { fields.Fields.Add(new FlexOrder.UserDefinedField { Key = "UnknownFeild01", Value = order.UnknownFeild01 }); } //UnknownFeild02 if (!string.IsNullOrWhiteSpace(order.UnknownFeild02)) { fields.Fields.Add(new FlexOrder.UserDefinedField { Key = "UnknownFeild02", Value = order.UnknownFeild02 }); } //UnknownFeild03 if (!string.IsNullOrWhiteSpace(order.UnknownFeild03)) { fields.Fields.Add(new FlexOrder.UserDefinedField { Key = "UnknownFeild03", Value = order.UnknownFeild03 }); } //UnknownFeild04 if (!string.IsNullOrWhiteSpace(order.UnknownFeild04)) { fields.Fields.Add(new FlexOrder.UserDefinedField { Key = "UnknownFeild04", Value = order.UnknownFeild04 }); } //UnknownFeild05 if (!string.IsNullOrWhiteSpace(order.UnknownFeild05)) { fields.Fields.Add(new FlexOrder.UserDefinedField { Key = "UnknownFeild05", Value = order.UnknownFeild05 }); } //UnknownFeild06 if (!string.IsNullOrWhiteSpace(order.UnknownFeild06)) { fields.Fields.Add(new FlexOrder.UserDefinedField { Key = "UnknownFeild06", Value = order.UnknownFeild06 }); } //UnknownFeild07 if (!string.IsNullOrWhiteSpace(order.UnknownFeild07)) { fields.Fields.Add(new FlexOrder.UserDefinedField { Key = "UnknownFeild07", Value = order.UnknownFeild07 }); } //UnknownFeild08 if (!string.IsNullOrWhiteSpace(order.UnknownFeild08)) { fields.Fields.Add(new FlexOrder.UserDefinedField { Key = "UnknownFeild08", Value = order.UnknownFeild08 }); } //UnknownFeild09 if (!string.IsNullOrWhiteSpace(order.UnknownFeild09)) { fields.Fields.Add(new FlexOrder.UserDefinedField { Key = "UnknownFeild09", Value = order.UnknownFeild09 }); } //UnknownFeild10 if (!string.IsNullOrWhiteSpace(order.UnknownFeild10)) { fields.Fields.Add(new FlexOrder.UserDefinedField { Key = "UnknownFeild10", Value = order.UnknownFeild10 }); } //UnknownFeild11 if (!string.IsNullOrWhiteSpace(order.UnknownFeild11)) { fields.Fields.Add(new FlexOrder.UserDefinedField { Key = "UnknownFeild11", Value = order.UnknownFeild11 }); } //UnknownFeild12 if (!string.IsNullOrWhiteSpace(order.UnknownFeild12)) { fields.Fields.Add(new FlexOrder.UserDefinedField { Key = "UnknownFeild12", Value = order.UnknownFeild12 }); } //BookFacCode if (!string.IsNullOrWhiteSpace(order.BookFacCode)) { fields.Fields.Add(new FlexOrder.UserDefinedField { Key = "BookFacCode", Value = order.BookFacCode }); } //DirShipFlag if (!string.IsNullOrWhiteSpace(order.DirShipFlag)) { fields.Fields.Add(new FlexOrder.UserDefinedField { Key = "DirShipFlag", Value = order.DirShipFlag }); } //ShipToCode if (!string.IsNullOrWhiteSpace(order.ShipToCode)) { fields.Fields.Add(new FlexOrder.UserDefinedField { Key = "ShipToCode", Value = order.ShipToCode }); } #endregion var result = new FlexOrder.OrderHeader { CustomerNumber = order.CustomerNumber, PremiseID = order.PremiseId, PO = order.PO, Comments = order.Comments, ShipToName = order.ShipToName, ShipToAddress1 = order.ShipToAddress1, ShipToAddress2 = order.ShipToAddress2, ShipToCity = order.ShipToCity, ShipToState = order.ShipToState, ShipToPostalCode = order.ShipToZipCode, ShipToCountry = order.ShipToCountry, IsRush = (order.RushOrder.Equals("true") || order.RushOrder.Equals("1")), ShipMethod = order.ShipVia, UserDefinedFields = fields, OrderLineHeaders = order.OrderLineHeaders.Select(v => v.ToFlexOrder()).ToList(), }; return(result); }
public void SaveLaserTagOrder() { var order = new AllfleXML.LaserTag.OrderHeader { CustomerNumber = "testing", Comments = "PIN:005S55A", OrderBy = "BH", OrderDate = "031316", OrderType = "ST", PO = "TESTTSU4", PremiseId = "005S55A", ShipToAddress1 = "ATTN BOB LITTLE", ShipToAddress2 = "664 E BLUE SKU ST", ShipToCity = "SHAWANO", ShipToCountry = "USA", ShipToName = "CRI", ShipToState = "WI", ShipToZipCode = "54166", OrderLineHeaders = new List <AllfleXML.LaserTag.OrderLineHeader> { new AllfleXML.LaserTag.OrderLineHeader { QTY = "1", SKU = "TSUGNXUSDATXF2/LM-PK", DeliveryRemarks = "1@ S: M:101 L:150", OrderLineTemplateDetails = new List <AllfleXML.LaserTag.LineTemplateDetail> { new AllfleXML.LaserTag.LineTemplateDetail { SKU = "TSUGNXUSDATXF2/LM-PK", Variables = new [] { "var1", "var2" } } } } } }; var doc = AllfleXML.LaserTag.Parser.Export(order); Assert.IsNotNull(doc); var isValid1 = AllfleXML.LaserTag.Parser.Validate(doc); Assert.IsTrue(isValid1); const string fileName = "testLaserTagOrder.xml"; order.Save(fileName); Assert.IsTrue(File.Exists(fileName)); var isValid2 = AllfleXML.LaserTag.Parser.Validate(fileName); Assert.IsTrue(isValid2); var tmp = AllfleXML.LaserTag.Parser.Import(fileName); Assert.IsNotNull(tmp); Assert.IsTrue(tmp.OrderHeader.Any()); Assert.IsTrue(tmp.OrderHeader.Select(o => o.OrderLineHeaders.Any()).All(o => o)); File.Delete(fileName); Assert.IsFalse(File.Exists(fileName)); }