public override void Unpack(string data) { string[] datasWithR = data.Split('\n'); string datass = ""; foreach (string s in datasWithR) { datass += s; } string[] datas = datass.Split('\r'); List <string> vs = new List <string>(); int counter = 3; string infoString = ""; this.iban = new Iban(datas[counter]); counter++; infoString = ""; for (int i = counter; i < counter + 7; i++) { infoString += datas[i] + '\r'; } counter += 7; this.creditor = new Contact(infoString); if (datas[counter] != String.Empty) { infoString = String.Empty; for (int i = counter; i < counter + 7; i++) { infoString += datas[i] + '\r'; } this.ultimateCreditor = new Contact(infoString); } counter += 7; this.amount = datas[counter] == String.Empty ? amount = null : Decimal.Parse(datas[counter].Replace('.', ',')); counter++; switch (datas[counter]) { case "EUR": this.currency = Currency.EUR; break; case "CHF": this.currency = Currency.CHF; break; } counter++; if (datas[counter] != String.Empty) { infoString = String.Empty; for (int i = counter; i < counter + 7; i++) { infoString += datas[i] + '\r'; } this.debitor = new Contact(infoString); } counter += 7; infoString = String.Empty; for (int i = counter; i < counter + 2; i++) { infoString += datas[i] + '\r'; } this.reference = new Reference(infoString); if (reference.RefType == Reference.ReferenceType.QRR) { iban.TypeIban = Iban.IbanType.QrIban; } else { iban.TypeIban = Iban.IbanType.Iban; } if (!String.IsNullOrEmpty(reference.ReferenceText)) { if (reference.ChecksumMod10(reference.ReferenceText)) { reference._ReferenceTextType = Reference.ReferenceTextType.QrReference; } else if (Regex.IsMatch(reference.ReferenceText, @"^[0-9]+$")) { reference._ReferenceTextType = Reference.ReferenceTextType.CreditorReferenceIso11649; } } counter += 2; infoString = String.Empty; for (int i = counter; i < counter + 3; i++) { infoString += datas[i] + '\r'; } this.additionalInformation = new AdditionalInformation(infoString); counter += 3; if (datas.Length - 1 >= counter) { alternativeProcedure1 = datas[counter]; } counter++; if (datas.Length - 1 >= counter) { alternativeProcedure2 = datas[counter]; } }