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)); } }
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)); } }
public IActionResult EditTravelPlan(int id) { TravelPlan travelPlan = _travelPlanService.GetTravelPlan(id); TravelPlanDTO travelPlanDTO = _travelPlanService.MapTravelPlanToDTO(travelPlan, _carService); return(View(travelPlanDTO)); }
public IActionResult CreateTravelPlan() { TravelPlanDTO travelPlanDTO = new TravelPlanDTO(); travelPlanDTO.ListOfCars = _carService.Cars.ToList(); return(View(travelPlanDTO)); }
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; }
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)); }
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); }
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)); }
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); }