private void LoadItems(XDocument doc) { try { PrintWorkItems = new Collection<WorkItemPrintData>(); var xitem = from item in doc.Descendants("item") select new { type = item.Attribute("type").Value, bgcolor = int.Parse(item.Attribute("bgColor").Value), txtcolor = int.Parse(item.Attribute("txtColor").Value), layout = item.Element("layout") }; foreach (var item in xitem) { var printWorkItem = new WorkItemPrintData { Type = item.type, BackGroundColor = item.bgcolor, TextColor = item.txtcolor, }; try { var xrow = from row in item.layout.Descendants("row") select new { font = row.Attribute("font").Value, alignment = row.Attribute("alignment"), rowLayout = row }; foreach (var row in xrow) { var r = new Row { Font = row.font, RowElements = CreateRowElements(row.rowLayout) }; if (row.alignment != null) { r.Alignment = row.alignment.Value; } printWorkItem.Rows.Add(r); } } catch (Exception e) { if (!(e is SettingsLoadException)) { throw new SettingsLoadException("Error loading workitem:" + printWorkItem.Type); } throw; } PrintWorkItems.Add(printWorkItem); } } catch (Exception e) { if (!(e is SettingsLoadException)) { throw new SettingsLoadException("Error loading workitem setting"); } throw; } }
private XElement CreateXmlLayout(WorkItemPrintData workItemPrintData) { var xrows = new Collection<object>(); foreach (Row row in workItemPrintData.Rows) { xrows.Add(new XElement("row", new object[] { new XAttribute("font", row.Font), new XAttribute("alignment", row.Alignment), CreateXmlRowElements(row) })); } return new XElement("layout", xrows.ToArray()); }