Ejemplo n.º 1
0
        /// <summary>
        /// Adds deposit details to database
        /// </summary>
        /// <param name="depositDetails">
        /// All details stored as class object
        /// </param>
        public void AddDepositDetails(Deposit deposit)
        {
            moneyManagerContext.Deposit.Add(deposit);
            //get list of all parameters that have amount less than balane
            //order by balance with lowest first
            var parameterList = moneyManagerContext.Parameters
                                .Where(parameter => parameter.ParameterBalance < parameter.ParameterAmount)
                                .OrderBy(parameter => parameter.ParameterBalance)
                                .ToList();
            var balance = deposit.DepositAmount;

            //add amount to balance from deposit and save changes
            foreach (var parameter in parameterList)
            {
                var amountToBeAdded      = parameter.ParameterAmount - parameter.ParameterBalance;
                var amountThatCanBeAdded = balance <= amountToBeAdded ? balance : amountToBeAdded;
                if (amountToBeAdded > (0.25 * parameter.ParameterAmount))
                {
                    ParameterEntry parameterEntry = new ParameterEntry()
                    {
                        ParameterId        = parameter.ParameterId,
                        DepositId          = deposit.DepositId,
                        AddedBalance       = amountThatCanBeAdded,
                        IsSavingsParameter = false
                    };
                    moneyManagerContext.ParameterEntry.Add(parameterEntry);
                    parameter.ParameterBalance = parameter.ParameterBalance + amountThatCanBeAdded;
                    balance = balance - amountThatCanBeAdded;
                    moneyManagerContext.Entry(parameter).State = EntityState.Modified;
                }
            }
            var savingsParameterList = moneyManagerContext.SavingsParameters.ToList();

            foreach (var savingsParameter in savingsParameterList)
            {
                ParameterEntry parameterEntry = new ParameterEntry()
                {
                    SavingsParameterId = savingsParameter.SavingsParameterId,
                    DepositId          = deposit.DepositId,
                    AddedBalance       = balance / savingsParameterList.Count,
                    IsSavingsParameter = true
                };
                moneyManagerContext.ParameterEntry.Add(parameterEntry);
                savingsParameter.SavingsParameterBalance          = savingsParameter.SavingsParameterBalance + (balance / savingsParameterList.Count);
                moneyManagerContext.Entry(savingsParameter).State = EntityState.Modified;
            }

            moneyManagerContext.SaveChanges();
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Adds expense details to database
 /// </summary>
 /// <param name="Expense">
 /// All details stored as class object
 /// </param>
 public void AddExpense(Expense expense)
 {
     moneyManagerContext.Expense.Add(expense);
     if (!expense.IsSavingsParameter)
     {
         //Get parameter details from database and update balance
         Parameters parameter = moneyManagerContext.Parameters.Where(item => item.ParameterId == expense.ParameterId).FirstOrDefault <Parameters>();
         parameter.ParameterBalance = parameter.ParameterBalance - expense.ExpenseAmount;
         moneyManagerContext.Entry(parameter).State = EntityState.Modified;
     }
     else
     {
         SavingsParameters savingsParameters = moneyManagerContext.SavingsParameters.Where(item => item.SavingsParameterId == expense.SavingsParameterId).FirstOrDefault <SavingsParameters>();
         savingsParameters.SavingsParameterBalance          = savingsParameters.SavingsParameterBalance - expense.ExpenseAmount;
         moneyManagerContext.Entry(savingsParameters).State = EntityState.Modified;
     }
     moneyManagerContext.SaveChanges();
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Function to add current payment of loan to database
        /// </summary>
        /// <param name="loanPayment"></param>
        public void AddLoanPayment(LoanPayment loanPayment)
        {
            moneyManagerContext.LoanPayment.Add(loanPayment);
            var loan = moneyManagerContext.Loan.Find(loanPayment.LoanId);
            //total amount payed or recieved for loan
            var totalPayed = moneyManagerContext.LoanPayment.Where(entry => entry.LoanId == loanPayment.LoanId).Sum(entry => entry.LoanPaymentAmount);

            if (totalPayed >= loan.LoanAmount)
            {
                //set payed =true is whole amount is payed or received
                loan.IsLoanPayed = true;
            }
            moneyManagerContext.Entry(loan).State = EntityState.Modified;
            moneyManagerContext.SaveChanges();
        }
Ejemplo n.º 4
0
 public void Update(T entity)
 {
     MoneyManagerContext.Entry(entity).State = EntityState.Modified;
 }