public static BankStatementDto ExtractBankStatementInfo(this List <Line> lines) { var maxcoordinates = lines.GetMaxXandY(); List <Line> companyInfoLines = new List <Line>(); foreach (var line in lines) { var isWithinPercentage = BoundingBoxHelper.IsWithinThisPercentage(line, maxcoordinates, 30, 30); if (isWithinPercentage.Item1 && isWithinPercentage.Item2) { companyInfoLines.Add(line); } if (!isWithinPercentage.Item2) { break; } } BankStatementDto bankStatement = new BankStatementDto { CompanyName = companyInfoLines[0].Text, AddressLine1 = companyInfoLines[1].Text, AddressLine2 = companyInfoLines[2].Text, AddressLine3 = companyInfoLines[3].Text, PostCode = companyInfoLines[4].Text, CompanyType = GetCompanyType(companyInfoLines[0].Text), AccountProvider = lines.First().Text, Raw = lines.Select(x => x.Text).ToList() }; return(bankStatement); }
public void Apply(BankStatementDto bankStatement) { if (bankStatement.Amount < 0) { var refund = new Refund(Math.Abs(bankStatement.Amount), bankStatement.Date); AccountOperations.Add(refund); } else { var registeredPayment = new RegisteredPayment(bankStatement.Amount, bankStatement.Date); AccountOperations.Add(registeredPayment); } }