예제 #1
0
        public IActionResult GetCab(OrderCab carModel)
        {
            if (carModel.CarTypeId == -1)
            {
                ModelState.AddModelError("OrderCab.CarTypeId", "Please select the Room Type");
            }
            if (ModelState.IsValid)
            {
                var check = _repository.GetAllCustomers().Single(q => q.Email == carModel.CustomerEmail);

                if (check.Password == carModel.Password)
                {
                    var cabOrders = _repository.GetAllCabOrders()
                                    .Where(q =>
                                           (q.DateOfOrder >= carModel.DateOfOrder &&
                                            q.DateOfOrder <= carModel.DateOfReturn) ||
                                           (q.DateOfReturn >= carModel.DateOfOrder &&
                                            q.DateOfReturn <= q.DateOfReturn) && q.CarTypeId == carModel.CarTypeId);
                    var cars = _repository.GetAllCars();

                    foreach (var order in cabOrders)
                    {
                        cars = cars.Where(q => q.CarId != order.CarId);
                    }

                    if (cars.Count() > 0)
                    {
                        carModel.CarId         = cars.First().CarId;
                        carModel.UniqueOrderId = Guid.NewGuid();
                        _repository.AddCabOrder(carModel);
                        if (_repository.SaveChanges())
                        {
                            ViewBag.GetCab = "Please get keys at the front desk for " + cars.First().RegistrationNumber;
                            ModelState.Clear();
                        }
                    }
                    else
                    {
                        ViewBag.GetCab = "Sorry selected cars are not available at given dates";
                    }
                }
                else
                {
                    ViewBag.GetCab = "Invalid Email or Password";
                }

                ViewBag.CarRequest = "Thanks!";
                ModelState.Clear();
            }

            ViewBag.Cars = _car.CarTypes(_repository.GetAllCarTypes());
            return(View());
        }
 public IEnumerable <OrderCab> GetCabOrders()
 {
     return(_repository.GetAllCabOrders());
 }
예제 #3
0
 public IEnumerable <OrderCab> CabOrders()
 {
     return(_repository.GetAllCabOrders().Where(q => q.CustomerEmail == _email));
 }