public ActionResult Book(int id) { var bus = db.Bus.Where(c => c.tripid == id && c.Num_Chairs > 0); bookbus bb = new bookbus { bus = bus }; return(View(bb)); }
public ActionResult Book(Bill bill, bookbus bb, int id) { if (ModelState.IsValid) { var bus = db.Bus.Where(c => c.ID == bb.booking.busid).SingleOrDefault(); var trip = db.trips.Where(c => c.id == id).SingleOrDefault(); /*if (db.booking.Any(o => o.busid == bus.ID && o.t_id == trip.id) && db.Bill.Any(z => z.t_id == trip.id && z.busid == bus.ID && z.personid == bill.personid)) * { * ViewBag.Exist = "have booked "; * } * else * {*/ //var bus = db.Bus.Where(c => c.ID == bb.booking.busid).SingleOrDefault(); //var trip = db.trips.Where(c => c.id == id).SingleOrDefault(); var tickets = bb.booking.NumOFChair; var chairs = bus.Num_Chairs; bus.Num_Chairs = chairs - tickets; var userid = bb.booking.personid; var total = trip.price * tickets; var cost = discount(userid, tickets, total); bb.booking.time = DateTime.Now; bb.booking.cost = cost; bb.booking.booked = true; bb.booking.t_id = trip.id; bb.booking.booked = true; bill.from = trip.from; bill.to = trip.to; bill.cost = cost; bill.time = DateTime.Now; bill.busid = bb.booking.busid; bill.t_id = id; bill.personid = bb.booking.personid; if (bb.booking.payment == true) { bill.type = "credit"; payment(bb.booking); if (db.booking.Any(o => o.busid == bb.booking.busid && o.t_id == bb.booking.t_id && o.personid == bb.booking.personid)) { ViewBag.message = "you have booked"; } else { SendEmail(userid, id, cost); send_Sms(userid); db.booking.Add(bb.booking); db.Bill.Add(bill); db.SaveChanges(); return(RedirectToAction("Index", "Paypal")); } } else { bill.type = "cash"; if (db.booking.Any(o => o.busid == bb.booking.busid && o.t_id == bb.booking.t_id && o.personid == bb.booking.personid)) { ViewBag.message = "you have booked"; } else { db.booking.Add(bb.booking); db.Bill.Add(bill); try { db.SaveChanges(); } catch (System.Data.Entity.Validation.DbEntityValidationException dbEx) { Exception raise = dbEx; foreach (var validationErrors in dbEx.EntityValidationErrors) { foreach (var validationError in validationErrors.ValidationErrors) { string message = string.Format("{0}:{1}", validationErrors.Entry.Entity.ToString(), validationError.ErrorMessage); // raise a new exception nesting // the current instance as InnerException raise = new InvalidOperationException(message, raise); } } throw raise; } SendEmail(userid, id, cost); send_Sms(userid); return(RedirectToAction("showBookings", "User")); } return(RedirectToAction("Book", bb)); } //db.SaveChanges(); /* db.booking.Add(bb.booking); * db.Bill.Add(bill); * db.SaveChanges();*/ // SendEmail(userid, id, cost); //send_Sms(userid); // Bill(id, (int)bb.booking.busid); //return RedirectToAction("showBookings","User"); return(RedirectToAction("showBookings", "User")); } else { var bus1 = db.Bus.Where(c => c.tripid == id && c.Num_Chairs > 0).ToList(); bb.bus = bus1; return(RedirectToAction("Book", bb)); } }