public CreditPaymentModel(CreditPayment payment)
 {
     Id = payment.Id;
     MainAmount = payment.MainAmount;
     PercentAmount = payment.PercentsAmount;
     Type = (CreditPaymentType) payment.Type;
     Date = payment.Date;
     CreditId = payment.CreditId;
     if (payment.Credit != null)
     {
         CreditModel = new CreditModel(payment.Credit, takePayments: false);
     }
 }
 public void AddPayment(CreditPaymentModel paymentModel)
 {
     var credit = creditRepository.GetCreditById(paymentModel.CreditId);
     var rest = paymentModel.MainAmount - credit.PercentageDebt;
     decimal mainMinus, percentMinus;
     if (rest >= 0)
     {
         mainMinus = rest;
         percentMinus = credit.PercentageDebt;
     }
     else
     {
         mainMinus = 0;
         percentMinus = paymentModel.MainAmount;
     }
     credit.MainDebt -= mainMinus;
     credit.PercentageDebt -= percentMinus;
     if (credit.MainDebt < 1)
     {
         credit.MainDebt = 0;
     }
     if (credit.PercentageDebt < 1)
     {
         credit.PercentageDebt = 0;
     }
     creditRepository.UpdateCredit(credit);
     var date = dateService.GetCurrentDate();
     var payment = new CreditPayment
     {
         MainAmount = mainMinus,
         PercentsAmount = percentMinus,
         CreditId = paymentModel.CreditId,
         Type = (int)paymentModel.Type,
         Date = date,
     };
     creditPaymentRepository.CreatePayment(payment);
 }