public ActionResult RegisterCar(CarsCompanyViewModel viewModel) { var userId = User.Identity.GetUserId(); var company = _companyService.GetAll().First(x => x.UserId == userId); var newcar = (new Car() { Brand = viewModel.Brand, InternalNumber = viewModel.InternalNumber, Model = viewModel.Model, RegisterNumber = viewModel.RegisterNumber, Year = viewModel.Year, Company = company, Location = new Location() { Latitude = 0, Longitude = 0 }, CarStatus = CarStatus.OffDuty, LastActiveDateTime = DateTime.Now }); _carService.CreateCar(newcar); if (viewModel.SelectedDriver != "0") { var driver = _driverService.GetAll().First(x => x.UserId == viewModel.SelectedDriver); _driverService.AddCar(driver.Id, newcar); } return(RedirectToAction("Cars")); }
public ActionResult ChangeCar(CarsCompanyViewModel viewModel) { var car = _carService.GetCars().First(x => x.Id == viewModel.CarId); car.Model = viewModel.Model; car.RegisterNumber = viewModel.Model; car.InternalNumber = viewModel.InternalNumber; car.Year = viewModel.Year; car.Brand = viewModel.Brand; _carService.ModifyCar(viewModel.CarId, car); var driver = _driverService.GetDriverByCar(car); if (viewModel.SelectedDriver == "0" && driver != null) { driver.Car = null; _driverService.DriverModify(driver.Id, driver); } else if (viewModel.SelectedDriver != "0" && driver == null) { var newDriver = _driverService.GetAll().First(x => x.UserId == viewModel.SelectedDriver); _driverService.AddCar(newDriver.Id, car); } else if (viewModel.SelectedDriver != "0" && driver != null && viewModel.SelectedDriver != driver.UserId) { driver.Car = null; _driverService.DriverModify(driver.Id, driver); var newDriver = _driverService.GetAll().FirstOrDefault(x => x.UserId == viewModel.SelectedDriver); if (newDriver != null) { _driverService.AddCar(newDriver.Id, car); } } return(RedirectToAction("Cars")); }
public ActionResult Cars() { if (User.IsInRole("Company")) { var currentUserId = User.Identity.GetUserId(); var cars = _carService.GetCars().Where(x => x.Company.UserId == currentUserId).ToList(); var drivers = new List <Driver>(); foreach (var car in cars) { var driver = _driverService.GetDriverByCar(car); if (driver != null) { drivers.Add(driver); } else { drivers.Add(null); } } var listUsers = new List <DriverBasicInfo>(); foreach (var driver in drivers) { if (driver != null) { var userFound = UserManager.FindById(driver.UserId); listUsers.Add(new DriverBasicInfo() { UserId = userFound.Id, Name = userFound.FirstName + ' ' + userFound.LastName }); } else { listUsers.Add(new DriverBasicInfo() { Name = "Няма", UserId = "0" }); } } var viewModel = new CarsCompanyViewModel { CarsAndDrivers = new Dictionary <Car, DriverBasicInfo>() }; for (var i = 0; i < cars.Count; i++) { if (listUsers.Count - 1 < i) { viewModel.CarsAndDrivers.Add(cars[i], new DriverBasicInfo() { Name = "Няма", UserId = "0" }); } else { viewModel.CarsAndDrivers.Add(cars[i], listUsers[i]); } } var driversWithoutCars = _driverService.GetAll().Where(x => x.Car == null).ToList(); var listSelectedItems = new List <SelectListItem>(); listSelectedItems.Add(new SelectListItem { Selected = true, Text = string.Format("Няма"), Value = "0" }); for (var i = 0; i < driversWithoutCars.Count; i++) { var user = UserManager.FindById(driversWithoutCars[i].UserId); listSelectedItems.Add(new SelectListItem { Selected = false, Text = user.FirstName + ' ' + user.LastName, Value = user.Id.ToString() }); } viewModel.Drivers = new SelectList(listSelectedItems); return(View("CompanyCars", viewModel)); } else { return(View("DriverCars")); } }