Ejemplo n.º 1
0
        public ActionResult Approve(CarRentalViewModel model)
        {
            if (model.Id == 0)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CarRent carRent = db.CarRental.Find(model.Id);

            carRent.Status = CarRent.StatusEnum.Approved;
            db.SaveChanges();

            return(RedirectToAction("Index"));
        }
Ejemplo n.º 2
0
 //Get Method
 public ActionResult Create(string brand = null, string rego = null)
 {
     if (brand != null && rego != null)
     {
         CarRentalViewModel model = new CarRentalViewModel
         {
             Brand = brand,
             Rego  = rego
         };
         return(View(model));
     }
     return(View(new CarRentalViewModel()));
 }
Ejemplo n.º 3
0
        public ActionResult Decline(CarRentalViewModel model)
        {
            if (model.Id == 0)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CarRent carRent = db.CarRental.Find(model.Id);

            carRent.Status = CarRent.StatusEnum.Rejected;

            Car carInDb = db.Cars.Find(carRent.CarId);

            carInDb.Availability += 1;
            db.SaveChanges();

            return(RedirectToAction("Index"));
        }
        // GET: CarDetail
        public ActionResult Index(int id)
        {
            var userId = User.Identity.GetUserId();
            var user   = db.Users.FirstOrDefault(u => u.Id == userId);

            var carModel = db.Cars.Include(b => b.Type).SingleOrDefault(b => b.Id == id);

            var rentalPrice    = 0.0;
            var oneMonthRental = 0.0;
            var TwoMonthRental = 0.0;

            if (user != null && !User.IsInRole(SD.AdminUserRole))
            {
                var chargeRate = from u in db.Users
                                 join m in db.MembershipTypes on u.MembershipTypeId equals m.Id
                                 where u.Id.Equals(userId)
                                 select new { m.ChargeRateOneMonth, m.ChargeRateTwoMonth };

                oneMonthRental = Convert.ToDouble(carModel.Price) * Convert.ToDouble(chargeRate.ToList()[0].ChargeRateOneMonth) / 100;
                TwoMonthRental = Convert.ToDouble(carModel.Price) * Convert.ToDouble(chargeRate.ToList()[0].ChargeRateTwoMonth) / 100;
            }
            CarRentalViewModel model = new CarRentalViewModel
            {
                CarId               = carModel.Id,
                Rego                = carModel.Rego,
                Availability        = carModel.Availability,
                DateAdded           = carModel.DateAdded,
                Description         = carModel.Description,
                Type                = db.TypeCars.FirstOrDefault(g => g.Id.Equals(carModel.TypeId)),
                TypeId              = carModel.TypeId,
                ImageUrl            = carModel.ImageUrl,
                Seats               = carModel.Seats,
                Price               = carModel.Price,
                FuelType            = carModel.FuelType,
                Engine              = carModel.Engine,
                Brand               = carModel.Brand,
                Manufacturer        = carModel.Manufacturer,
                UserId              = userId,
                RentalPrice         = rentalPrice,
                rentalPriceTwoMonth = TwoMonthRental,
                rentalPriceOneMonth = oneMonthRental
            };

            return(View(model));
        }
Ejemplo n.º 5
0
        public ActionResult Reserve(CarRentalViewModel car)
        {
            var    userid    = User.Identity.GetUserId();
            Car    carToRent = db.Cars.Find(car.CarId);
            double rentalPr  = 0;

            if (userid != null)
            {
                var chargeRate = from u in db.Users
                                 join m in db.MembershipTypes
                                 on u.MembershipTypeId equals m.Id
                                 where u.Id.Equals(userid)
                                 select new { m.ChargeRateOneMonth, m.ChargeRateTwoMonth };
                if (car.RentalDuration == SD.TwoMonthCount)
                {
                    rentalPr = Convert.ToDouble(carToRent.Price) * Convert.ToDouble(chargeRate.ToList()[0].ChargeRateTwoMonth) / 100;
                }
                else
                {
                    rentalPr = Convert.ToDouble(carToRent.Price) * Convert.ToDouble(chargeRate.ToList()[0].ChargeRateOneMonth) / 100;
                }

                CarRent carRent = new CarRent
                {
                    CarId          = carToRent.Id,
                    UserId         = userid,
                    RentalDuration = car.RentalDuration,
                    RentalPrice    = rentalPr,

                    Status = CarRent.StatusEnum.Requested,
                };

                db.CarRental.Add(carRent);
                var carInDb = db.Cars.SingleOrDefault(c => c.Id == car.CarId);

                carInDb.Availability -= 1;

                db.SaveChanges();
                return(RedirectToAction("Index", "CarRent"));
            }
            return(View());
        }
Ejemplo n.º 6
0
        public ActionResult Return(CarRentalViewModel model)
        {
            if (model.Id == 0)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CarRent carRent = db.CarRental.Find(model.Id);

            carRent.Status           = CarRent.StatusEnum.Closed;
            carRent.AdditionalCharge = model.AdditionalCharge;

            Car carInDb = db.Cars.Find(carRent.CarId);

            carInDb.Availability += 1;

            carRent.ActualEndDate = DateTime.Now;

            db.SaveChanges();

            return(RedirectToAction("Index"));
        }
Ejemplo n.º 7
0
        private CarRentalViewModel getVMFromCarRent(CarRent carRent)
        {
            Car carSelected = db.Cars.Where(b => b.Id == carRent.CarId).FirstOrDefault();
            var userDetails = from u in db.Users
                              where u.Id.Equals(carRent.UserId)
                              select new { u.Id, u.FirstName, u.LastName, u.Email };

            CarRentalViewModel model = new CarRentalViewModel
            {
                Id          = carRent.Id,
                CarId       = carSelected.Id,
                RentalPrice = carRent.RentalPrice,
                Price       = carSelected.Price,
                Seats       = carSelected.Seats,
                FirstName   = userDetails.ToList()[0].FirstName,
                LastName    = userDetails.ToList()[0].LastName,
                //BirthDate = userDetails.ToList()[0].bir
                Email            = userDetails.ToList()[0].Email,
                UserId           = userDetails.ToList()[0].Id,
                ScheduledEndDate = carRent.ScheduledEndDate,
                Manufacturer     = carSelected.Manufacturer,
                StartDate        = carRent.StartDate,
                Availability     = carSelected.Availability,
                DateAdded        = carSelected.DateAdded,
                Description      = carSelected.Description,
                TypeId           = carSelected.TypeId,
                Type             = db.TypeCars.FirstOrDefault(g => g.Id.Equals(carSelected.TypeId)),
                Rego             = carSelected.Rego,
                ImageUrl         = carSelected.ImageUrl,
                FuelType         = carSelected.FuelType,
                Engine           = carSelected.Engine,
                RentalDuration   = carRent.RentalDuration,
                Status           = carRent.Status.ToString(),
                Brand            = carSelected.Brand,
                AdditionalCharge = carRent.AdditionalCharge,
            };

            return(model);
        }
Ejemplo n.º 8
0
        public ActionResult PickUp(CarRentalViewModel model)
        {
            if (model.Id == 0)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CarRent carRent = db.CarRental.Find(model.Id);

            carRent.Status    = CarRent.StatusEnum.Rented;
            carRent.StartDate = DateTime.Now;
            if (carRent.RentalDuration == SD.TwoMonthCount)
            {
                carRent.ScheduledEndDate = DateTime.Now.AddMonths(Convert.ToInt32(SD.TwoMonthCount));
            }
            else
            {
                carRent.ScheduledEndDate = DateTime.Now.AddMonths(Convert.ToInt32(SD.OneMonthCount));
            }
            db.SaveChanges();

            return(RedirectToAction("Index"));
        }
Ejemplo n.º 9
0
        public ActionResult Create(CarRentalViewModel carRent)
        {
            if (ModelState.IsValid)
            {
                var email = carRent.Email;

                var userDetails = from u in db.Users
                                  where u.Email.Equals(email)
                                  select new { u.Id, u.FirstName, u.LastName, u.BirthDate };

                var Rego = carRent.Rego;

                Car carSelected = db.Cars.Where(b => b.Rego == Rego).FirstOrDefault();

                var rentalDuration = carRent.RentalDuration;

                var chargeRate = from u in db.Users
                                 join m in db.MembershipTypes
                                 on u.MembershipTypeId equals m.Id
                                 where u.Email.Equals(email)
                                 select new { m.ChargeRateOneMonth, m.ChargeRateTwoMonth };

                var oneMonthRental = Convert.ToDouble(carSelected.Price) * Convert.ToDouble(chargeRate.ToList()[0].ChargeRateOneMonth) / 100;
                var TwoMonthRental = Convert.ToDouble(carSelected.Price) * Convert.ToDouble(chargeRate.ToList()[0].ChargeRateTwoMonth) / 100;

                double rentalPr = 0;

                if (carRent.RentalDuration == SD.TwoMonthCount)
                {
                    rentalPr = TwoMonthRental;
                }
                else
                {
                    rentalPr = oneMonthRental;
                }

                //BookRentalViewModel model = new BookRentalViewModel
                //{
                //    BookId = bookSelected.Id,
                //    RentalPrice = rentalPr,
                //    Price = bookSelected.Price,
                //    Pages = bookSelected.Pages,
                //    FirstName = userDetails.ToList()[0].FirstName,
                //    LastName = userDetails.ToList()[0].LastName,
                //    BirthDate = userDetails.ToList()[0].BirthDate,
                //    ScheduledEndDate = bookRent.ScheduledEndDate,
                //    Author = bookSelected.Author,
                //    Avaibility = bookSelected.Avaibility,
                //    DateAdded = bookSelected.DateAdded,
                //    Description = bookSelected.Description,
                //    Email = email,
                //    GenreId = bookRent.GenreId,
                //    Genre = db.Genres.Where(g => g.Id.Equals(bookSelected.GenreId)).First(),
                //    ISBN = bookSelected.ISBN,
                //    ImageUrl = bookSelected.ImageUrl,
                //    ProductDimensions = bookSelected.ProductDimensions,
                //    PublicationDate = bookSelected.PublicationDate,
                //    Publisher = bookSelected.Publisher,
                //    RentalDuration = bookRent.RentalDuration,
                //    Status = BookRent.StatusEnum.Requested.ToString(),
                //    Title = bookSelected.Title,
                //    UserId = userDetails.ToList()[0].Id,
                //    RentalPriceOneMonth = oneMonthRental,
                //    RentalPriceSixMonth = sixMonthRental
                //};

                CarRent modelToAddToDb = new CarRent
                {
                    CarId            = carSelected.Id,
                    RentalPrice      = rentalPr,
                    ScheduledEndDate = carRent.ScheduledEndDate,
                    RentalDuration   = carRent.RentalDuration,
                    Status           = CarRent.StatusEnum.Approved,
                    UserId           = userDetails.ToList()[0].Id
                };

                carSelected.Availability -= 1;
                db.CarRental.Add(modelToAddToDb);
                db.SaveChanges();

                return(RedirectToAction("Index"));
            }
            return(View());
        }