コード例 #1
0
        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));
        }
コード例 #2
0
        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));
            }
        }