public BookScheduleController() { if (bm == null) { bm = new BookScheduleModel() { ContainerModels = new List <ContainerModels>() }; } _context = new ApplicationDbContext(); }
public ActionResult CreateBooking([Bind(Exclude = "Origin,Destination,StartDate,EndDate")] BookScheduleViewModel bsvm) { var viewschedule = _context.ScheduleDetails.Include(b => b.ShipDetails).SingleOrDefault(b => b.Id == bsvm.ScheduleDetails.Id); var viewcustomer = _context.CustomerModels.Where(b => b.AspNetUsersId == User.Identity.Name); BookScheduleViewModel bsvm1 = new BookScheduleViewModel { ScheduleDetails = viewschedule, CustomerModels = viewcustomer }; var addbooking = new BookScheduleModel { ContainerModels = bm.ContainerModels, CustomerModelsId = bsvm.BookScheduleModels.CustomerModelsId, ScheduleDetailsId = bsvm.ScheduleDetails.Id, IsDelivered = false }; var getBay = _context.ScheduleDetails.Include(db => db.ShipDetails) .SingleOrDefault(db => db.Id == addbooking.ScheduleDetailsId); var deductBay = _context.ShipDetails.SingleOrDefault(db => db.Id == getBay.ShipDetailsId); var BayUsed = 0; foreach (var i in bm.ContainerModels) { BayUsed += i.NumberOfBayUsed; } addbooking.totalBayUsed = BayUsed; deductBay.RemainingBaySize = deductBay.RemainingBaySize - BayUsed; if (deductBay.RemainingBaySize == 0) { deductBay.Availability = false; } _context.SaveChanges(); _context.BookScheduleModels.Add(addbooking); try { _context.SaveChanges(); ViewBag.IsSuccess = true; ViewBag.Message = "Booking has been made successfully."; bm.ContainerModels.Clear(); ModelState.Clear(); } catch (Exception ex) { ViewBag.IsSuccess = false; ViewBag.Message = "Create Failed.\nError: " + ex.Message; } return(RedirectToAction("Index")); }