public void UpdatePayment() { try { var tenantId = Payments.ElementAt(0).TenantId; Tenant = _tenantService.GetTenant(tenantId); foreach (var Payment in Payments) { if (Payment.BillFormat != null) { var payment = _tenantService.GetPayment(tenantId, Payment.Format, Payment.FinalBillDate); Payment.TenantId = tenantId; Reading = _readingService.GetReadingOfTenant(tenantId, Payment.FinalBillDate.AddMonths(-1)); ValidateAmountWithTotalCalCulation(tenantId, Payment.FinalBillDate, Payment.Format, Payment.PaymentAmount); if (payment == null) { Payment.DueAmount = Total - Payment.PaymentAmount; if (Payment.DueAmount < 1) { Payment.DueAmount = 0; } _tenantService.AddPayment(Payment); } else { if (payment.DueAmount != 0) { payment.DueAmount = payment.DueAmount - Payment.PaymentAmount; if (payment.DueAmount < 1) { payment.DueAmount = 0; } Payment.DueAmount = payment.DueAmount; } payment.PaymentAmount = Payment.PaymentAmount; payment.PaymentMethod = Payment.PaymentMethod; payment.DocumentsDetails = Payment.DocumentsDetails; _tenantService.EditPayment(payment); } } } } catch (InvalidOperationException ex) { { Notification = new NotificationModel( "Failed!", "Your amount is greater than total amountof bill", NotificationModel.NotificationType.Fail); } } }