public static bool ComposeBarCode(string accountNum, string rfNum, double sum, string dueDate, out List <int> barCode) { string res = string.Empty; if (IBAN.IsValidFinnishIBAN(accountNum) && (RF.IsValidFinnishRFnumber(rfNum) || RF.IsValidInternationalRFnumber(rfNum))) { res += rfNum.StartsWith("RF") ? "5" : "4"; res += FormatAccountNumber(accountNum); if (sum >= 0) { res += sum > 999999.99 ? "00000000" : int.Parse(Math.Round(sum * 100).ToString()).ToString("D8"); } res += FormatRFnumber(rfNum); res += IsProperDate(dueDate) ? dueDate : "000000"; } barCode = new List <int>(); if (res.Length == 54) { barCode.Add(105); int i = 0; while (i < res.Length - 1) { barCode.Add(int.Parse(res.Substring(i, 2))); i += 2; } barCode.Add(CalculateCheckNumber(barCode)); return(true); } return(false); }