//protected bool ValidateProduct(TWEditVM modelToValidate)
        //{
        //    TravelWarrant travelWarrant = context.TravelWarrant.Find(modelToValidate.TravelWarrantId);
        //    if(modelToValidate.Status.ToString() == "Completed"
        //        && travelWarrant.Status.ToString() == "Recorded")
        //    {
        //        validationDictionary.AddError("Status", "Cannot be completed");
        //    }
        //    return validationDictionary.IsValid;
        //}

        public bool createTravelWarrant(TWCreateVM model)
        {
            TravelWarrant travelWarrant = new TravelWarrant
            {
                CarId              = model.CarId,
                DriverId           = model.DriverId,
                StartLocation      = model.StartLocation,
                EndLocation        = model.EndLocation,
                StartTime          = model.StartTime,
                EndTime            = model.EndTime,
                NumberOfPassengers = model.NumberOfPassengers,
                Status             = Status.Recorded,
            };

            foreach (var item in context.TravelWarrant)
            {
                if (item.CarId == travelWarrant.CarId &&
                    (item.Status.ToString() == "Recorded" ||
                     item.Status.ToString() == "Confirmed") &&
                    (travelWarrant.StartTime >= item.StartTime &&
                     travelWarrant.StartTime <= item.EndTime) ||
                    (travelWarrant.EndTime >= item.StartTime &&
                     travelWarrant.EndTime <= item.EndTime)
                    )
                {
                    return(false);
                }
            }
            context.TravelWarrant.Add(travelWarrant);
            context.SaveChanges();
            return(true);
        }
        public IActionResult Create(TWCreateVM model)
        {
            if (!travelWarrantService.createTravelWarrant(model))
            {
                TempData["message"] = "Nalog se ne moze kreirati zbog toga sto je automobil vec rezervisan";

                return(RedirectToAction("Create", model));
            }
            ;
            return(RedirectToAction("Index"));
        }
        public TWCreateVM prepareTWCreateVM()
        {
            TWCreateVM model = new TWCreateVM
            {
                StartTime = DateTime.Now,
                EndTime   = DateTime.Now,
                Status    = Status.Confirmed,
                carList   = context.Car.Select(x => new SelectListItem
                {
                    Value = x.CarId.ToString(),
                    Text  = x.CarModel.CarBrand.Name + " " +
                            x.CarModel.Name + " | " +
                            x.ChassisNumber
                }).ToList(),
                driverList = context.Driver.Select(x => new SelectListItem
                {
                    Value = x.DriverId.ToString(),
                    Text  = x.FirstName + " " + x.Surname
                }).ToList()
            };

            return(model);
        }
        public IActionResult Create()
        {
            TWCreateVM model = travelWarrantService.prepareTWCreateVM();

            return(View(model));
        }