public override XElement BuildXElement(List <string[]> source) { if (XElemBuilder.targetHeaders.Count >= 10 && IsAllKeyIndexesFound(XElemBuilder.targetHeaders)) { XElement cust = new XElement(Config.XmlFileRoot, from fields in source where !fields[1].Equals(string.Empty) & !fields[2].Equals(string.Empty) select new XElement(Config.TransactionField, new XAttribute(Config.AuftragsKontoField, fields[(int)targetHeaders.GetByIndex(0)]), // Auftragskonto new XElement(Config.BuchungstagField, Config.ExchYearDay(fields[(int)targetHeaders.GetByIndex(1)]), new XAttribute("type", "date")), // Buchungstag new XElement(Config.WertDatumField, Config.ExchYearDay(fields[(int)targetHeaders.GetByIndex(2)]), new XAttribute("type", "date")), // Valutadatum new XElement(Config.BuchungsTextField, fields[(int)targetHeaders.GetByIndex(3)]), // Buchungstext new XElement(Config.VerwendZweckField, fields[(int)targetHeaders.GetByIndex(4)]), // Verwendungszweck new XElement(Config.BeguenstigterField, fields[(int)targetHeaders.GetByIndex(5)].Equals(string.Empty) ? "---" : fields[(int)targetHeaders.GetByIndex(5)]), // Begünstigter new XElement(Config.KontonummerField, fields[(int)targetHeaders.GetByIndex(6)]), // Kontonummer new XElement(Config.BLZField, fields[(int)targetHeaders.GetByIndex(7)]), // BLZ new XElement(Config.BetragField, // Betrag GetAdoptedDouble(fields[(int)targetHeaders.GetByIndex(8)]), new XAttribute(Config.WaehrungField, fields[(int)targetHeaders.GetByIndex(9)]), new XAttribute("type", "double")) // Währung ) ); return(cust); } WindowWarning dialog = new WindowWarning(); dialog.labelMessage.Content = " Not all acting fields are found!\r\n Only basic functionality is availible.\r\n Press: \r\n Ok - To proceed; \r\n Stop - To cancel databank update. "; dialog.buttonOk.Click += delegate { dialog.Close(); }; dialog.buttonStop.Click += delegate { dialog.Close(); Successor = null; }; dialog.ShowDialog(); if (Successor != null) { return(Successor.BuildXElement(source)); } return(null); }
public override XElement BuildXElement(List <string[]> source) { if (XElemBuilder.targetHeaders.Count >= 4 && IsAllKeyIndexesFound(XElemBuilder.targetHeaders)) { InitialaizeAccountsWindow(); XElement cust = new XElement(Config.XmlFileRoot, from fields in source where !fields[0].Equals(string.Empty) & !fields[1].Equals(string.Empty) select new XElement(Config.TransactionField, new XAttribute(Config.AuftragsKontoField, bankAccount), // Auftragskonto new XElement(Config.BuchungstagField, fields[(int)targetHeaders.GetByIndex(0)]), // Buchungstag new XElement(Config.WertDatumField, Config.ExchYearDay(fields[(int)targetHeaders.GetByIndex(1)]), new XAttribute("type", "date")), // Valutadatum new XElement(Config.BuchungsTextField, "---"), // Buchungstext new XElement(Config.VerwendZweckField, fields[(int)targetHeaders.GetByIndex(2)]), // Verwendungszweck new XElement(Config.BeguenstigterField, "---"), // Begünstigter new XElement(Config.KontonummerField, String.Empty), // Kontonummer new XElement(Config.BLZField, String.Empty), // BLZ new XElement(Config.BetragField, // Betrag GetAdoptedDouble(fields[(int)targetHeaders.GetByIndex(3)]), new XAttribute(Config.WaehrungField, " Euro"), new XAttribute("type", "double")) // Währung ) ); return(cust); } else if (Successor != null) { return(Successor.BuildXElement(source)); } else { MessageBox.Show(String.Format(" Only {0} from 4 required header(s) is(are) resolved. \r\n The file was processed, but no new data is appended. \r\n The update of headers dictionary is required.", XElemBuilder.targetHeaders.Count)); return(null); } }