protected virtual void OnImport(IEnumerable <P.Payment> payments, P.Payments dbPayments) { foreach (var payment in payments) { if (dbPayments.FirstOrDefault(dbPayment => dbPayment.PaymentID == payment.PaymentID) != null) { PaymentRepository.Edit(payment); } else { PaymentRepository.Add(payment); } } }
// Duplicate = Same Payment ID and payment in DB is Locked protected IEnumerable <P.Payment> RemoveDuplicate(IEnumerable <P.Payment> payments, P.Payments dbPayments) { var paymentsById = payments.GroupBy(a => a.PaymentID) .Select(b => b.Last()); var paymentsToImport = paymentsById.ToList(); foreach (var paymentById in payments) { if (dbPayments.FirstOrDefault(dbPayment => paymentById.PaymentID == dbPayment.PaymentID && dbPayment.Locked) != null) { paymentsToImport.Remove(paymentById); } } return(paymentsToImport); }