public ActionResult GetPrisonerDetails(int id) { Prisoner prisoner = (from item in db.Prisoners where item.prisonerID == id select item).FirstOrDefault(); prisonerSatyIn cell = (from item in db.prisonerSatyIns where item.prisonerid == id select item).FirstOrDefault(); PrisonerWorkA work = (from item in db.PrisonerWorkAs where item.prisonerid == id select item).FirstOrDefault(); prisonerDetails prisonerDetails = new prisonerDetails(); prisonerDetails.prisoner = prisoner; if (cell != null) { prisonerDetails.cell = cell.prisonerCell; } if (work != null) { prisonerDetails.job = work.Job; } return(View(prisonerDetails)); }
private void AssignACell(Prisoner prisoner) { //var maxCellID = (from item in db.prisonerCells // where item.availableCount >= 1 // orderby item.prisonerCellID descending // select item.prisonerCellID).FirstOrDefault(); //var minCellID = (from item in db.prisonerCells // where item.availableCount >= 1 // orderby item.prisonerCellID ascending // select item.prisonerCellID).FirstOrDefault(); var query = (from item in db.prisonerCells where item.availableCount >= 1 select item.prisonerCellID).ToList(); Random rnd = new Random(); int randomIndex = rnd.Next(query.Count); int selectedCellID = query[randomIndex]; var selectedCell = (from item in db.prisonerCells where item.prisonerCellID == selectedCellID select item).FirstOrDefault(); if (selectedCell != null) { prisonerSatyIn relation = new prisonerSatyIn(); relation.Prisoner = prisoner; relation.prisonerid = prisoner.prisonerID; relation.prisonerCell = selectedCell; relation.prisonerCellid = selectedCell.prisonerCellID; relation.since = DateTime.Now; db.Entry(relation).State = EntityState.Added; db.SaveChanges(); selectedCell.availableCount--; db.Entry(selectedCell).State = EntityState.Modified; db.SaveChanges(); } }