public OurBank GetPersonBank(string NationalCode)
        {
            decimal Loan    = dc.LoanSelectCommand().Where(x => x.PersonNationalCode == NationalCode).Sum(x => x.Amount);
            decimal Deposit = dc.DepositSelectCommand().Where(x => x.PersonNationalCode == NationalCode).Sum(x => x.Amount);

            // TODO better code here
            decimal PayedInstallements = 0, NonPayedInstallements = 0;

            foreach (var item in dc.LoanTransactions.Where(x => x.PersonNationalCode == NationalCode))
            {
                PayedInstallements    += item.Installements.Where(x => x.IsPayed == true).Sum(x => x.Amount);
                NonPayedInstallements += item.Installements.Where(x => x.IsPayed == false).Sum(x => x.Amount);
            }

            return(new OurBank {
                Loan = Loan, Deposit = Deposit, PayedInstallements = PayedInstallements, NonPayedInstallements = NonPayedInstallements
            });
        }
        public void AutomaticInstallement(Guid LoanTransactionId, int Count)
        {
            var      Loan          = dc.LoanSelectCommand().Where(x => x.Id == LoanTransactionId).FirstOrDefault();
            decimal  eachOneAmount = (int)(Loan.Amount / Count);
            DateTime dt            = DateTime.Now;

            for (int i = 0; i < Count; i++)
            {
                if (i + 1 == Count)
                {
                    eachOneAmount = (Loan.Amount - (eachOneAmount * Count)) + eachOneAmount;
                }
                if (Count > 1)
                {
                    dt = dt.AddMonths(1);
                }
                dc.InstallementsInsertCommand(Guid.NewGuid(), dt, eachOneAmount, LoanTransactionId);
            }
        }
 public List <LoanSelectCommandResult> UnPermittedLoanTransactions(string NationalCode)
 {
     return(dc.LoanSelectCommand().Where(x => x.PersonNationalCode == NationalCode && x.AdminPermission == false).OrderByDescending(x => x.DateTime).ToList());
 }