public ActionResult CompleteStop(int id) { TodayPickup completedStop = _context.TodayPickups.Where(x => x.PickupId == id).FirstOrDefault(); completedStop.Completed = true; int customerAddressId = _context.Addresses.Where(x => x.Street == completedStop.Street && x.City == completedStop.City && x.State == completedStop.State && x.Zip == completedStop.Zip).Select(x => x.AddressId).FirstOrDefault(); Customer customerToCharge = _context.Customers.Where(x => x.AddressId == customerAddressId).FirstOrDefault(); Account accountToCharge = _context.Accounts.Where(x => x.AccountId == customerToCharge.AccountId).FirstOrDefault(); accountToCharge.Balance += 10.25; _context.SaveChanges(); return(RedirectToAction(nameof(Index))); }
// Helper method to create stop rows in TodayPickups private void BuildScheduleForToday(int todayId) { List <int> stopAddressIds = _context.Customers.Where(x => x.DayId == todayId || x.SpecialPickup == DateTime.Today && !(DateTime.Today <x.SuspendEnd && DateTime.Today> x.SuspendStart)).Select(x => x.AddressId).ToList(); List <Address> stopAddresses = new List <Address>(); foreach (var address in stopAddressIds) { stopAddresses.Add(_context.Addresses.Where(x => x.AddressId == address).FirstOrDefault()); } foreach (var stop in stopAddresses) { TodayPickup todayPickup = new TodayPickup(); todayPickup.Street = stop.Street; todayPickup.City = stop.City; todayPickup.State = stop.State; todayPickup.Zip = stop.Zip; todayPickup.Date = DateTime.Today; _context.TodayPickups.Add(todayPickup); } _context.SaveChanges(); }