public bool ProcessPayments(ICollection <Payment> payments) { var saleId = payments.First().SaleInvoiceId; var sale = _salesRepo.GetSale(saleId); if (sale == null || sale.Finalised == true) { return(false); } else if (ValidatePaymentAmount(sale.Total, payments)) { _salesRepo.AddSalesPayments(payments); FinaliseSale(sale); return(true); } return(false); }