Exemple #1
0
 public ActionResult Order([ModelBinder(typeof(OrderRentModelBinder))] OrderRentModel obj)
 {
     try
     {
         using (RentCar rent = new RentCar())
         {
             rent.Create(obj.order);
         }
         using (CarM car = new CarM())
         {
             Car updated = car.SearchFor(c => c.CarNumber == obj.order.NumCar).FirstOrDefault();
             updated.FreeForRent = false;
             car.Update(updated);
             return(RedirectToAction("Success", "Rent"));
         }
     }
     catch (DbUpdateException e)
     {
         foreach (var eve in e.Entries)
         {
             Console.WriteLine("Entity of type \"{0}\" has the following validation errors:",
                               eve.Entity);
         }
         throw;
     }
     catch (Exception ex)
     {
         return(View(ex));
     }
 }
Exemple #2
0
 public ActionResult Order(int id, string branch)
 {
     using (TypeCarM tCar = new TypeCarM())
     {
         OrderRentModel order = new OrderRentModel();
         order.cars = tCar.GetById(id).Cars.Where(b => b.Branch == branch).ToList();
         HttpCookie authCookie            = Request.Cookies[FormsAuthentication.FormsCookieName];
         FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(authCookie.Value);
         string userName = ticket.Name;
         UserM  user     = new UserM();
         order.user = user.SearchFor(u => u.FullName == userName).FirstOrDefault();
         return(View(order));
     }
 }
Exemple #3
0
 public ActionResult OrderByCar(int id, string branch)
 {
     using (CarM Car = new CarM())
     {
         OrderRentModel order = new OrderRentModel();
         order.cars = new List <DAL.Car>();
         order.cars.Add(Car.SearchFor(b => b.id == id).FirstOrDefault());
         HttpCookie authCookie            = Request.Cookies[FormsAuthentication.FormsCookieName];
         FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(authCookie.Value);
         string userName = ticket.Name;
         UserM  user     = new UserM();
         order.user = user.SearchFor(u => u.FullName == userName).FirstOrDefault();
         return(View("~/Views/Rent/Order.cshtml", order));
     }
 }
        /// <summary>
        /// Implementention IModelBinder interface
        /// combine 2 models
        /// </summary>
        /// <param name="controllerContext"></param>
        /// <param name="bindingContext"></param>
        /// <returns>OrderRentModel</returns>
        public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
        {
            HttpContextBase objContext = controllerContext.HttpContext;
            //getting fields from request
            string userId = objContext.Request.Form["user"];
            string carId  = objContext.Request.Form["car"];
            string start  = objContext.Request.Form["start"];
            string finish = objContext.Request.Form["finish"];
            // creating models accordingly request
            UserM um   = new UserM();
            CarM  cm   = new CarM();
            var   UID  = int.Parse(userId);
            var   CID  = int.Parse(carId);
            Car   auto = cm.SearchFor(c => c.CarNumber == CID).FirstOrDefault();
            User  user = um.SearchFor(u => u.IdNumber == UID).FirstOrDefault();

            CarsRent rent = new CarsRent();

            rent.NumCar         = int.Parse(carId);
            rent.NumUser        = int.Parse(userId);
            rent.StartRent      = DateTime.Parse(start);
            rent.FinishRent     = DateTime.Parse(finish);
            rent.RealFinishRent = DateTime.Parse(finish);
            //rent.User = user;
            //rent.Car = auto;
            //returned model
            OrderRentModel rentModel = new OrderRentModel()
            {
                cars = new List <Car>()
            };

            rentModel.cars.Add(auto);
            rentModel.user  = user;
            rentModel.order = rent;
            return(rentModel);
        }