public void SetViewBag(CheckoutAssetOrForPatron model) { if (model.FixedAsset != null) { Asset asset = db.Assets.FirstOrDefault(a => a.AssetId == model.FixedAsset); List <Asset> assets = new List <Asset>(); assets.Add(asset); ViewBag.AssetId = new SelectList(assets, "AssetId", "Name", asset.AssetId); ViewBag.FixedAsset = asset.AssetId; } else { ViewBag.AssetId = new SelectList(db.Assets.Where(a => a.Status.Name.Equals("CheckedIn")), "AssetId", "Name"); } if (model.FixedPatron != null) { Patron patron = db.Patrons.FirstOrDefault(a => a.PatronId == model.FixedPatron); List <Patron> patrons = new List <Patron>(); patrons.Add(patron); ViewBag.PatronId = new SelectList(patrons, "PatronId", "Name", patron.PatronId); ViewBag.FixedPatron = patron.PatronId; } else { ViewBag.PatronId = new SelectList(db.Patrons, "PatronId", "Surname"); } }
// GET: Checkouts/Create public ActionResult Create(int?assetId, int?patronId) { //if assetid supplied restrict to that asset if (assetId != null) { Asset asset = db.Assets.FirstOrDefault(a => a.AssetId == assetId); List <Asset> assets = new List <Asset>(); assets.Add(asset); ViewBag.AssetId = new SelectList(assets, "AssetId", "DisplayName", asset.AssetId); ViewBag.FixedAsset = asset.AssetId; } else { ViewBag.AssetId = new SelectList(db.Assets.Where(a => a.Status.Name.Equals("CheckedIn")), "AssetId", "DisplayName"); } //if patronid supplied restrict to that patron if (patronId != null) { Patron patron = db.Patrons.FirstOrDefault(a => a.PatronId == patronId); List <Patron> patrons = new List <Patron>(); patrons.Add(patron); ViewBag.PatronId = new SelectList(patrons, "PatronId", "DisplayName", patron.PatronId); ViewBag.FixedPatron = patron.PatronId; } else { ViewBag.PatronId = new SelectList(db.Patrons, "PatronId", "DisplayName"); } //ViewBag.DefaultCheckoutDate = DateTime.Now; //ViewBag.DefaultReturnDate = DateTime.Today.AddMonths(1); CheckoutAssetOrForPatron checkout = new CheckoutAssetOrForPatron { CheckoutDate = DateTime.Now, ReturnDate = DateTime.Today.AddMonths(1) }; return(View(checkout)); }
public ActionResult Create([Bind(Include = "CheckoutId,AssetId,PatronId,Checkoutdate,ReturnDate,Notes,RowVersion, FixedAsset, FixedPatron")] CheckoutAssetOrForPatron model) { if (ModelState.IsValid) { Checkout checkout = new Checkout { AssetId = model.AssetId, PatronId = model.PatronId, CheckoutDate = model.CheckoutDate, ReturnDate = model.ReturnDate, Notes = model.Notes, RowVersion = model.RowVersion, }; db.Checkouts.Add(checkout); //also need to set asset to CheckedOut Asset assetModel = db.Assets.Find(model.AssetId); //first check if asset is available if (assetModel.StatusId != db.Status.FirstOrDefault(a => a.Name == "CheckedIn").StatusId) { ViewBag.errorMessage = "The Asset is not available to be Checked out"; SetViewBag(model); return(View(model)); } assetModel.StatusId = db.Status.FirstOrDefault(a => a.Name == "CheckedOut").StatusId; db.Entry(assetModel).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } SetViewBag(model); return(View(model)); }