public IActionResult ExecuteCageAssign(CageAssignViewModel model) { Mouse mouse = _context.Mouse.Single(m => m.MouseID == model.MouseID); mouse.MouseCages = _context.MouseCage.Where(mc => mc.MouseID == mouse.MouseID).ToList(); if (mouse.MouseCages != null) { if (mouse.MouseCages.Any(mc => mc.EndDate == null)) { Cage currentCage = _context.Cage.SingleOrDefault(c => c.CageID == _context.MouseCage.Single(mc => mc.EndDate == null && mc.MouseID == mouse.MouseID).CageID); if (currentCage != null) { MouseCage oldMouseCage = _context.MouseCage.Single(mc => mc.MouseID == model.MouseID && mc.CageID == currentCage.CageID && mc.EndDate == null); oldMouseCage.EndDate = model.Date; _context.MouseCage.Update(oldMouseCage); _context.SaveChanges(); } } } _context.MouseCage.Add( new MouseCage { CageID = model.NewCageID, MouseID = model.MouseID, StartDate = model.Date } ); _context.SaveChanges(); return(RedirectToAction("Details", "Lines", new { id = mouse.LineID })); }
public async Task <IActionResult> TerminateConfirmed(int id, DateTime date) { var mouse = await _context.Mouse.SingleOrDefaultAsync(m => m.MouseID == id); mouse.Death = date; MouseCage openCage = await _context.MouseCage.SingleOrDefaultAsync(mc => mc.MouseID == id && mc.EndDate == null); if (openCage != null) { openCage.EndDate = date; _context.MouseCage.Update(openCage); } _context.Mouse.Update(mouse); _context.MouseHealthStatus.Add(new MouseHealthStatus { MouseID = mouse.MouseID, User = await GetCurrentUserAsync(), HealthStatusID = _context.HealthStatus.Single(hs => hs.Name == "Terminated").HealthStatusID, StartDate = date, EndDate = date }); await _context.SaveChangesAsync(); return(RedirectToAction("Details", "Lines", new { id = mouse.LineID })); }