示例#1
0
        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);
     }
 }