public async Task <IActionResult> Create(long BuildingId, [Bind("MOID,Date,Carpet,Appliances,Walls,Cleaning_fee,Damage_fee,fees_paid,TenantTID,UnitUID")] Move_out move_out) { if (ModelState.IsValid) { var mounit = from m in _context.Unit where m.UID == move_out.UnitUID select m; var motenant = from u in mounit join mi in _context.Move_in on u.UID equals mi.UnitUID into temp from lj in temp.DefaultIfEmpty() join t in _context.Tenant on lj.TenantTID equals t.TID into temp2 from lj2 in temp2.DefaultIfEmpty() select lj2; ViewBag.TenantTID = new SelectList(motenant, "TID", "Last_name"); ViewBag.UnitUID = new SelectList(mounit, "UID", "Unit_Number"); var move_in = from m in _context.Move_in where m.TenantTID == move_out.TenantTID select m; foreach (var m in move_in) { if (move_out.Date < m.Date) { ViewBag.Message = "Invalid move out date!"; return(View(move_out)); } } if (move_out.Date > DateTime.Today.AddDays(1)) { ViewBag.Message = "Move out date cannot be in the future"; return(View(move_out)); } var tenant = await _context.Tenant.FindAsync(move_out.TenantTID); tenant.Current = "No"; tenant.ReservedUnit = null; tenant.Lease_end_date = move_out.Date; _context.Add(move_out); _context.Update(tenant); var unit = await _context.Unit.FindAsync(move_out.UnitUID); unit.Occupied = "No"; unit.Ready_to_rent = "No"; _context.Update(unit); await _context.SaveChangesAsync(); return(RedirectToAction("Details", "Buildings", new { id = unit.BuildingId })); } return(View(move_out)); }
public async Task <IActionResult> Edit(int id, [Bind("MOID,Date,Carpet,Appliances,Walls,Cleaning_fee,Damage_fee,fees_paid,TenantTID,UnitUID")] Move_out move_out) { var tenant = from t in _context.Tenant where t.TID == move_out.TenantTID select t; var unit = from u in _context.Unit where u.UID == move_out.UnitUID select u; ViewData["TenantTID"] = new SelectList(tenant, "TID", "Last_name"); ViewData["UnitUID"] = new SelectList(unit, "UID", "Unit_Number"); if (id != move_out.MOID) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(move_out); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!Move_outExists(move_out.MOID)) { return(NotFound()); } else { throw; } } var units = await _context.Unit.FindAsync(move_out.UnitUID); return(RedirectToAction("Details", "Buildings", new { id = units.BuildingId })); } return(View(move_out)); }