public static InsuranceListViewModel GetInsuranceByUser(string username) { Entities entities = new Entities(); var insurances = entities.Assets.Include("Expenses").Where(x => x.Username.Equals(username) && x.AssetType == (int)Constants.Constants.ASSET_TYPE.INSURANCE && !x.DisabledDate.HasValue).OrderBy(x => x.AssetName).ToList(); InsuranceListViewModel result = new InsuranceListViewModel(); foreach (var insurance in insurances) { var expense = insurance.Expenses1.FirstOrDefault(); InsuranceViewModel viewModel = new InsuranceViewModel { Id = insurance.Id, Name = insurance.AssetName, Value = insurance.Value, StartDate = insurance.StartDate.Value, EndDate = insurance.EndDate.Value, PaymentPeriod = Helper.TimePeriodString(insurance.StartDate.Value, insurance.EndDate.Value), Expense = expense.Value, AnnualExpense = expense.Value * 12, Note = insurance.Note }; int paymentPeriod = Helper.CalculateTimePeriod(insurance.StartDate.Value, insurance.EndDate.Value); viewModel.TotalExpense = paymentPeriod * viewModel.Expense; viewModel.YieldRate = viewModel.TotalExpense > 0 ? (viewModel.Value - viewModel.TotalExpense) / viewModel.TotalExpense : 0; int currentPeriod = Helper.CalculateTimePeriod(viewModel.StartDate, DateTime.Now); viewModel.RemainedValue = viewModel.TotalExpense - viewModel.Expense * currentPeriod; result.Insurances.Add(viewModel); } result.TotalValue = result.Insurances.Sum(x => x.Value); result.TotalTotalExpense = result.Insurances.Sum(x => x.TotalExpense); result.TotalExpense = result.Insurances.Sum(x => x.Expense); result.TotalAnnualExpense = result.Insurances.Sum(x => x.AnnualExpense); result.TotalRemainedValue = result.Insurances.Sum(x => x.RemainedValue); result.IsInitialized = UserQueries.IsCompleteInitialized(username); return(result); }
public ActionResult _InsuranceTable() { InsuranceListViewModel model = InsuranceQueries.GetInsuranceByUser(UserQueries.GetCurrentUsername()); return(PartialView(model)); }