コード例 #1
0
        public IActionResult CreateTravelPlan(TravelPlanDTO travelPlanDTO)
        {
            bool isCarOnRide = _travelPlanService.IsCarAlreadyOnTheRide(travelPlanDTO.SelectedCarPlates, travelPlanDTO.StartDate, travelPlanDTO.EndDate);

            if (isCarOnRide)
            {
                ModelState.AddModelError("CarOnTheRide", "");
            }

            if (ModelState.IsValid)
            {
                TravelPlan travelPlan = _travelPlanService.MapDTOToTravelPlan(travelPlanDTO, _carService);

                List <TravelPlan> travelPlans = _travelPlanService.GetTravelPlans();
                travelPlans.Add(travelPlan);

                travelPlanDTO.Id = travelPlan.Id;

                return(RedirectToAction("PickPassengers", travelPlanDTO));
            }

            else
            {
                travelPlanDTO.ListOfCars = _carService.Cars.ToList();

                return(View(travelPlanDTO));
            }
        }
コード例 #2
0
        public IActionResult EditTravelPlan(TravelPlanDTO travelPlan)
        {
            TravelPlan travelPlanForEdit = _travelPlanService.GetTravelPlans().Where(p => p.Id == travelPlan.Id).FirstOrDefault();

            bool canFitIntoACar = _carService.CanFitIntoACar(travelPlan.SelectedCarPlates, travelPlanForEdit.SelectedEmployees);

            if (!canFitIntoACar)
            {
                ModelState.AddModelError("CarIsFull", "");
            }

            if (ModelState.IsValid)
            {
                travelPlan.SelectedEmployees = _travelPlanService.GetSelectedEmployees(travelPlan.Id);
                travelPlan.SelectedCar       = _carService.GetCar(travelPlan.SelectedCarPlates);

                _travelPlanService.SaveTravelPlan(travelPlan);

                return(RedirectToAction("Carpools"));
            }

            else
            {
                travelPlan.ListOfCars  = _carService.Cars.ToList();
                travelPlan.SelectedCar = _carService.GetCar(travelPlan.SelectedCarPlates);

                return(View(travelPlan));
            }
        }
コード例 #3
0
        public IActionResult EditTravelPlan(int id)
        {
            TravelPlan travelPlan = _travelPlanService.GetTravelPlan(id);

            TravelPlanDTO travelPlanDTO = _travelPlanService.MapTravelPlanToDTO(travelPlan, _carService);

            return(View(travelPlanDTO));
        }
コード例 #4
0
        public IActionResult CreateTravelPlan()
        {
            TravelPlanDTO travelPlanDTO = new TravelPlanDTO();

            travelPlanDTO.ListOfCars = _carService.Cars.ToList();

            return(View(travelPlanDTO));
        }
コード例 #5
0
        public void SaveTravelPlan(TravelPlanDTO travelPlanDTO)
        {
            TravelPlan updatedTravelPlan = TravelPlans.Where(tp => tp.Id == travelPlanDTO.Id).FirstOrDefault();

            updatedTravelPlan.StartDate         = travelPlanDTO.StartDate;
            updatedTravelPlan.EndDate           = travelPlanDTO.EndDate;
            updatedTravelPlan.StartLocation     = travelPlanDTO.StartLocation;
            updatedTravelPlan.EndLocation       = travelPlanDTO.EndLocation;
            updatedTravelPlan.SelectedCar       = travelPlanDTO.SelectedCar;
            updatedTravelPlan.SelectedEmployees = travelPlanDTO.SelectedEmployees;
        }
コード例 #6
0
        public IActionResult PickPassengers(int id)
        {
            TravelPlan travel = _travelPlanService.GetTravelPlan(id);

            TravelPlanDTO travelPlanDTO = _travelPlanService.MapTravelPlanToDTO(travel, _carService);

            if (travelPlanDTO != null)
            {
                travelPlanDTO.ListOfEmployees   = _employeeService.Employees.ToList();
                travelPlanDTO.SelectedEmployees = _travelPlanService.GetSelectedEmployees(travel.Id);
                travelPlanDTO.SelectedCarPlates = travel.SelectedCar.Plates;
            }

            return(View(travelPlanDTO));
        }
コード例 #7
0
        public TravelPlanDTO MapTravelPlanToDTO(TravelPlan travelPlan, ICarService carRepository)
        {
            TravelPlanDTO travelPlanDTO = new TravelPlanDTO();

            travelPlanDTO.ListOfCars        = carRepository.Cars.ToList();
            travelPlanDTO.Id                = travelPlan.Id;
            travelPlanDTO.StartDate         = travelPlan.StartDate;
            travelPlanDTO.EndDate           = travelPlan.EndDate;
            travelPlanDTO.StartLocation     = travelPlan.StartLocation;
            travelPlanDTO.EndLocation       = travelPlan.EndLocation;
            travelPlanDTO.SelectedCarPlates = travelPlan.SelectedCar.Plates;
            travelPlanDTO.SelectedCar       = travelPlan.SelectedCar;

            return(travelPlanDTO);
        }
コード例 #8
0
        public IActionResult SaveRide([FromBody] TravelPlanDTO data)
        {
            bool employeeAlreadyOnTheRoad = false;

            foreach (var employee in data.ListOfPassengersIds)
            {
                employeeAlreadyOnTheRoad = _travelPlanService.IsEmployeeOnTheRide(data.StartDate, data.EndDate, employee);
            }

            if (employeeAlreadyOnTheRoad)
            {
                data.Error = "One or more selected employees are already on the ride";
                return(Json(data));
            }

            bool hasLicense = _employeeService.HasDriverLicense(data.ListOfPassengersIds);

            if (!hasLicense)
            {
                data.Error = "None of the empoloyees has a license";
                return(Json(data));
            }

            bool canFitIntoACar = _carService.CanFitIntoACar(data.SelectedCarPlates, data.ListOfPassengersIds);

            if (!canFitIntoACar)
            {
                data.Error = "Too many employees in a car!";
                return(Json(data));
            }

            if (_travelPlanService.GetTravelPlans().Where(tp => tp.Id == data.Id).FirstOrDefault() != null)
            {
                data.SelectedEmployees = _employeeService.GetEmployeesByIds(data.ListOfPassengersIds);
                data.SelectedCar       = _carService.GetCar(data.SelectedCarPlates);

                _travelPlanService.SaveTravelPlan(data);

                return(Json(data));
            }

            return(Json(data));
        }
コード例 #9
0
        public TravelPlan MapDTOToTravelPlan(TravelPlanDTO travelPlanDTO, ICarService carRepository)
        {
            TravelPlan travelPlan = new TravelPlan();

            travelPlan.StartDate     = travelPlanDTO.StartDate;
            travelPlan.EndDate       = travelPlanDTO.EndDate;
            travelPlan.StartLocation = travelPlanDTO.StartLocation;
            travelPlan.EndLocation   = travelPlanDTO.EndLocation;

            if (TravelPlans.Count == 0)
            {
                travelPlan.Id = 1;
            }

            else
            {
                travelPlan.Id = TravelPlans.Last().Id + 1;
            }

            travelPlan.SelectedCar = carRepository.GetCar(travelPlanDTO.SelectedCarPlates);

            return(travelPlan);
        }