/// <summary> /// 获取数据集合 /// </summary> /// <param name="skipCount">跳过记录数</param> /// <param name="getCount">获取记录数</param> /// <returns></returns> public ReturnValue <valueType[]> Get(int skipCount, int getCount) { if (getCount > 0 && skipCount >= 0) { return(ReturnArray <valueType> .Get(ClientDataStructure.Client.QueryAsynchronous(GetNode(skipCount, getCount)))); } return(new ReturnValue <valueType[]> { Type = ReturnType.SearchTreeDictionaryIndexOutOfRange }); }
/// <summary> /// 获取逆序数据集合 /// </summary> /// <param name="skipCount">跳过记录数</param> /// <param name="getCount">获取记录数</param> /// <returns></returns> public async Task <ReturnValue <valueType[]> > GetDescTask(int skipCount, int getCount) { if (getCount > 0 && skipCount >= 0) { return(ReturnArray <valueType> .Get(await ClientDataStructure.Client.QueryAsynchronousAwaiter(GetNode(skipCount, -getCount)))); } return(new ReturnValue <valueType[]> { Type = ReturnType.SearchTreeDictionaryIndexOutOfRange }); }
/// <summary> /// 获取逆序分页数据集合 /// </summary> /// <param name="page">分页号,从 1 开始</param> /// <param name="pageSize">分页记录数</param> /// <returns></returns> public async Task <ReturnValue <valueType[]> > GetPageDescTask(int page, int pageSize) { long endIndex = (long)page * (long)pageSize; if (page > 0 && pageSize > 0 && (ulong)endIndex < (ulong)(uint)int.MaxValue) { return(ReturnArray <valueType> .Get(await ClientDataStructure.Client.QueryAsynchronousAwaiter(GetNode((int)endIndex - pageSize, -pageSize)))); } return(new ReturnValue <valueType[]> { Type = ReturnType.SearchTreeDictionaryIndexOutOfRange }); }
/// <summary> /// 获取分页数据集合 /// </summary> /// <param name="page">分页号,从 1 开始</param> /// <param name="pageSize">分页记录数</param> /// <returns></returns> public ReturnValue <valueType[]> GetPage(int page, int pageSize) { long endIndex = (long)page * (long)pageSize; if (page > 0 && pageSize > 0 && (ulong)endIndex < (ulong)(uint)int.MaxValue) { return(ReturnArray <valueType> .Get(Client.QueryAsynchronous(GetNode((int)endIndex - pageSize, pageSize)))); } return(new ReturnValue <valueType[]> { Type = ReturnType.SearchTreeDictionaryIndexOutOfRange }); }
public ReturnValue <valueType[]> Query() { return(ReturnArray <valueType> .Get(ShortPath.Client.QueryAsynchronous(this))); }
private void GetAmortizationSchedule(string debtDesc, double balance, double annualInterest, double monthlyRepayment) { double initBal = balance; double monthlyInterest = Math.Pow((1 + (annualInterest / 100)), ((double)1 / 12)) - 1; double additional = otherMonthlyRepayments * ((double)balance / totalBalance); double totalInterest = 0.0; double repayment = 0; var dateObj = DateTime.Now; var i = 0; if (debtDesc == "Credit Card") { creditCardData = new List <ReturnArray>(); } else if (debtDesc == "Personal Loans") { personalLoanData = new List <ReturnArray>(); } else if (debtDesc == "Car Finances") { carFinanceData = new List <ReturnArray>(); } else if (debtDesc == "Bonds") { bondsData = new List <ReturnArray>(); } while (balance > 0) { var date = dateObj; DateTime date_fmt = date.Date; balance = new[] { 0, balance - repayment }.Max(); double interest = balance * monthlyInterest; repayment = new[] { balance + interest, monthlyRepayment + additional }.Min(); var returnArrayData = new ReturnArray { date = date.ToShortDateString(), date_fmt = date.ToShortDateString(), balance = balance, balance_fmt = balance, interest = interest, interest_fmt = interest, repayment = repayment, repayment_fmt = repayment, }; switch (debtDesc) { case "Credit Card": creditCardData.Add(returnArrayData); break; case "Personal Loans": personalLoanData.Add(returnArrayData); break; case "Car Finances": carFinanceData.Add(returnArrayData); break; case "Bonds": bondsData.Add(returnArrayData); break; } dateObj = dateObj.AddMonths(1); totalInterest += interest; i++; } var debtSummaryData = new DebtSummary { debtDesc = debtDesc, monthlyInterest = monthlyInterest, outstandingAmount = initBal, outstandingAmount_fmt = initBal, remainingTerms = i, adjustedTerms = "_ months", totalRepayment = initBal + totalInterest, totalRepayment_fmt = initBal + totalInterest, adjustedTotalRepayments = "", interestSavings = "" }; debtSummary.Add(debtSummaryData); }
public ActionResult GetDebtCalculationsData(DebtData debt) { hasCreditCard = debt.hasCreditCard; settleCreditCardMonthly = debt.settleCreditCardMonthly; creditCardInterest = debt.creditCardInterest; outstandingCreditCard = debt.outstandingCreditCard; monthlyCreditCardRepayment = debt.monthlyCreditCardRepayment; hasPersonalLoan = debt.hasPersonalLoan; settleLoanMonthly = debt.settleLoanMonthly; loanInterestRate = debt.loanInterestRate; outstandingLoan = debt.outstandingLoan; monthlyLoanRepayment = debt.monthlyLoanRepayment; isCarFinanced = debt.isCarFinanced; settleCarFinanceMonthly = debt.settleCarFinanceMonthly; carFinanceInterest = debt.carFinanceInterest; outstandingCarFinance = debt.outstandingCarFinance; monthlyCarFinanceRepayment = debt.monthlyCarFinanceRepayment; hasBond = debt.hasBond; bondPaymentFixed = debt.bondPaymentFixed; bondInterest = debt.bondInterest; outstandingBond = debt.outstandingBond; monthlyBondRepayment = debt.monthlyBondRepayment; otherMonthlyRepayments = debt.otherMonthlyRepayments; totalBalance = outstandingCreditCard + outstandingLoan + outstandingCarFinance + outstandingBond; if (hasCreditCard == "yes") { GetAmortizationSchedule("Credit Card", outstandingCreditCard, creditCardInterest, monthlyCreditCardRepayment); } if (hasPersonalLoan == "yes") { GetAmortizationSchedule("Personal Loans", outstandingLoan, loanInterestRate, monthlyLoanRepayment); } if (isCarFinanced == "yes") { GetAmortizationSchedule("Car Finances", outstandingCarFinance, carFinanceInterest, monthlyCarFinanceRepayment); } if (hasBond == "yes") { GetAmortizationSchedule("Bonds", outstandingBond, bondInterest, monthlyBondRepayment); } List <List <ReturnArray> > arrayList = new List <List <ReturnArray> >() { creditCardData, personalLoanData, carFinanceData, bondsData }; List <string> dateArr = new List <string>(); bool emptyList = false; for (var j = 0; j < arrayList.Count; j++) { if (arrayList.ElementAt(j) != null) { emptyList = false; break; } emptyList = true; } if (emptyList == false) { var largestArr = arrayList.ElementAt(0); //Assumptions that the array selected was creditCard, may break if reversed for (var i = 0; i < arrayList.Count(); i++) { if (arrayList.ElementAt(i) != null) { largestArr = arrayList.ElementAt(i); } else { var returnArrayData = new ReturnArray { date = DateTime.Now.ToString(), date_fmt = DateTime.Now.ToShortDateString(), balance = 0, balance_fmt = 0, interest = 0, interest_fmt = 0, repayment = 0, repayment_fmt = 0, }; if (i == 0) { creditCardData = new List <ReturnArray>(); creditCardData.Add(returnArrayData); } if (i == 1) { personalLoanData = new List <ReturnArray>(); personalLoanData.Add(returnArrayData); } if (i == 2) { carFinanceData = new List <ReturnArray>(); carFinanceData.Add(returnArrayData); } if (i == 3) { bondsData = new List <ReturnArray>(); bondsData.Add(returnArrayData); } } } foreach (var obj in largestArr) { dateArr.Add(obj.date_fmt); } } else { creditCardData = new List <ReturnArray>(); personalLoanData = new List <ReturnArray>(); carFinanceData = new List <ReturnArray>(); bondsData = new List <ReturnArray>(); var returnArrayData = new ReturnArray { date = DateTime.Now.ToShortDateString(), date_fmt = DateTime.Now.ToShortDateString(), balance = 0, balance_fmt = 0, interest = 0, interest_fmt = 0, repayment = 0, repayment_fmt = 0, }; creditCardData.Add(returnArrayData); personalLoanData.Add(returnArrayData); carFinanceData.Add(returnArrayData); bondsData.Add(returnArrayData); for (var i = 1; i < arrayList.Count(); i++) { dateArr.Add(DateTime.Now.ToString("dd/MM/yyyy")); } } var maxDuration = 0; var totalBal = 0.0; var totalRepayment = 0.0; for (var i = 0; i < debtSummary.Count(); i++) { if (debtSummary.ElementAt(i).remainingTerms > maxDuration) { maxDuration = debtSummary.ElementAt(i).remainingTerms; } totalBal += debtSummary.ElementAt(i).outstandingAmount; totalRepayment += debtSummary.ElementAt(i).totalRepayment; } var debtSummaryData = new DebtSummary { debtDesc = "Total", monthlyInterest = 0, outstandingAmount = totalBal, outstandingAmount_fmt = totalBal, remainingTerms = maxDuration, adjustedTerms = "_ months", totalRepayment = totalRepayment, totalRepayment_fmt = totalRepayment, adjustedTotalRepayments = "", interestSavings = "" }; debtSummary.Add(debtSummaryData); var data = new { debtSummary = debtSummary, dateArr = dateArr, creditCard = creditCardData, personalLoans = personalLoanData, carFinance = carFinanceData, bonds = bondsData }; return(Json(data, JsonRequestBehavior.AllowGet)); }
/// <summary> /// 查询数据 /// </summary> /// <returns></returns> public async Task <ReturnValue <valueType[]> > QueryTask() { return(ReturnArray <valueType> .Get(await ShortPath.Client.QueryAsynchronousAwaiter(this))); }
/// <summary> /// 查询数据 /// </summary> /// <returns></returns> public async Task <ReturnValue <valueType[]> > QueryTask() { return(ReturnArray <valueType> .Get(await Parent.ClientDataStructure.Client.QueryAsynchronousAwaiter(this))); }
public ReturnValue <valueType[]> Query() { return(ReturnArray <valueType> .Get(Parent.ClientDataStructure.Client.QueryAsynchronous(this))); }