// GET: Contacts/Create public async Task <IActionResult> Create(int?id) { if (id == null) { return(NotFound()); } var userId = this.User.FindFirstValue(ClaimTypes.NameIdentifier); var lender = _context.Lenders.Where(c => c.IdentityUserId == userId).FirstOrDefault(); ContactCustomerViewModel contactCustomerViewModel = new ContactCustomerViewModel(); contactCustomerViewModel.Lender = lender; contactCustomerViewModel.Application = await _context.Applications.Include(a => a.Property).Include(a => a.Liabilities).Include(a => a.LoanProfiles).FirstOrDefaultAsync(m => m.Id == id); contactCustomerViewModel.Customers = _context.Customers.Where(c => c.Id == contactCustomerViewModel.Application.Id).ToList(); contactCustomerViewModel.Contacts = _context.Contacts.Where(c => c.ApplicationId == contactCustomerViewModel.Application.Id).ToList(); contactCustomerViewModel.Customer = contactCustomerViewModel.Customers.FirstOrDefault(); contactCustomerViewModel.Property = contactCustomerViewModel.Application.Property; contactCustomerViewModel.Liabilities = contactCustomerViewModel.Application.Liabilities.ToList(); contactCustomerViewModel.LoanProfiles = contactCustomerViewModel.Application.LoanProfiles.ToList(); if (contactCustomerViewModel.Application == null) { return(NotFound()); } return(View(contactCustomerViewModel)); }
public IActionResult CreateLiabilities(int id) { var userId = this.User.FindFirstValue(ClaimTypes.NameIdentifier); var customer = _context.Customers.Where(c => c.IdentityUserId == userId).FirstOrDefault(); ContactCustomerViewModel viewModel = new ContactCustomerViewModel(); var applicationInDb = _context.Applications.Where(c => c.Id == id).SingleOrDefault(); var liabilities = _context.Liabilities.Where(l => l.ApplicationId == id).ToList(); viewModel.Liabilities = liabilities; if (!liabilities.Any()) { applicationInDb.Liabilities = null; } Liability newLiability = new Liability(); viewModel.Application = applicationInDb; viewModel.Liability = newLiability; viewModel.Customer = customer; ViewData["LiabilityTypes"] = new SelectList(_context.LiabilityTypes, "Id", "Name"); return(View(viewModel)); }
public async Task <IActionResult> EditLiabilities(int?id) { if (id == null) { return(NotFound()); } ContactCustomerViewModel viewModel = new ContactCustomerViewModel(); var application = await _context.Applications.FindAsync(id); var liabilities = await _context.Liabilities.Where(a => a.ApplicationId == application.Id).ToListAsync(); if (application == null) { return(NotFound()); } viewModel.Application = application; viewModel.Application.Liabilities = liabilities; return(View(viewModel)); }
// GET: Customers public async Task <IActionResult> Index() { ContactCustomerViewModel viewModel = new ContactCustomerViewModel(); var userId = this.User.FindFirstValue(ClaimTypes.NameIdentifier); var customer = _context.Customers.Where(c => c.IdentityUserId == userId).FirstOrDefault(); viewModel.Customer = customer; if (customer == null) { return(RedirectToAction(nameof(Create))); } var application = await _context.Applications_Customers.Where(c => c.CustomerId == customer.Id).Select(d => d.Application).FirstOrDefaultAsync(); var loanProfiles = await _context.LoanProfiles.Where(c => c.ApplicationId == application.Id).ToListAsync(); var propertyInDb = await _context.Customers_Properties.Where(p => p.CustomerId == customer.Id).Select(q => q.Property).FirstOrDefaultAsync(); if (propertyInDb.Rate == 0) { return(RedirectToAction(nameof(EditCurrentMortgage))); } var liabilities = await _context.Liabilities.Where(l => l.ApplicationId == application.Id).ToListAsync(); viewModel.Property = propertyInDb; viewModel.Application = application; viewModel.LoanProfiles = loanProfiles; viewModel.Liabilities = liabilities; double liabilityTotal = 0; foreach (var item in liabilities) { liabilityTotal += item.Payment; } double monthlyExpenses = propertyInDb.MonthlyPayment + propertyInDb.MonthlyHOIPremium + propertyInDb.MonthlyPropertyTax + liabilityTotal; propertyInDb.MonthlyExpenses = monthlyExpenses; propertyInDb.DebtToIncome = Math.Round((monthlyExpenses / customer.MonthlyIncome) * 100, 2); _context.SaveChanges(); return(View(viewModel)); }