private static void MapToolToCheckOutInViewModel(Tool tool, Inmate inmate, UnitOfWork db) { var shop = db.ShopsRepo.FindById(tool.ShopId); var checkToolOutIn = new CheckToolOutInViewModel { ToolNumber = tool.ToolNumber, ToolDescription = tool.Description, ShopName = shop.Name, InmateId = inmate.Id, Inmate = inmate, ToolId = tool.Id, ToolReturned = true }; // check if tool is checked out bool toolCheckedOut = db.ToolsIssuedRepo .Exists(ti => ti.ToolId == tool.Id && !ti.ToolReturned); // if already checked out, get inmate name and assign to property if (toolCheckedOut) { // get ToolIssued obj var toolIssued = db.ToolsIssuedRepo.Find(ti => ti.ToolId == tool.Id && !ti.ToolReturned); var checkedOutByInmate = db.InmatesRepo.FindById(toolIssued.ReceivedByInmateId); checkToolOutIn.Inmate = checkedOutByInmate; checkToolOutIn.InmateId = checkedOutByInmate?.Id ?? 0; checkToolOutIn.IsCheckedOut = true; checkToolOutIn.ToolIssuedId = toolIssued.Id; checkToolOutIn.ToolReturned = toolIssued.ToolReturned; } CheckOutInTools.Add(checkToolOutIn); }
public static ObservableCollection <CheckToolOutInViewModel> LoadCheckOutInTools() { // Shop and inmate have to be selected if (SelectedShopId < 1 || SelectedInmateId < 1) { return(null); } CheckOutInTools.Clear(); using (var db = new UnitOfWork()) { var inmate = db.InmatesRepo.FindById(SelectedInmateId); var shop = db.ShopsRepo.FindById(SelectedShopId); var tools = shop.Name == AllShopsName?db.ToolsRepo.FindAll().ToList() : db.ToolsRepo.FindAll(t => t.ShopId == SelectedShopId).ToList(); MapToolsToCheckOutInViewModel(tools, inmate, db); } return(CheckOutInTools); }