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)); } }
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)); } }
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); }