public DriveCollectionsViewModel GetDetailsModel(int driveId, int userId) { Require.ThatIntIsPositive(driveId); Require.ThatIntIsPositive(userId); Drive drive = this.drives.GetByIdQueryable(driveId) .Include(d => d.From) .Include(d => d.To) .Include(d => d.Car) .Include(d => d.Driver) .Include(d => d.DrivesPassengers) .FirstOrDefault(); if (drive != null) { DriveDetailsViewModel driveViewModel = mapper.Map <DriveDetailsViewModel>(drive); driveViewModel.ReservedByUser = drive.DrivesPassengers.Any(x => x.PassengerId == userId); driveViewModel.UserIsOwner = drive.DriverId == userId; DriverDetailsViewModel driverViewModel = mapper.Map <DriverDetailsViewModel>(drive.Driver); CarDetailsViewModel carViewModel = mapper.Map <CarDetailsViewModel>(drive.Car); DriveCollectionsViewModel model = new DriveCollectionsViewModel() { Drive = driveViewModel, Driver = driverViewModel, Car = carViewModel }; return(model); } return(null); }
public IActionResult Details(int id, [FromServices] IDrivesService drivesService) { DriveCollectionsViewModel model = drivesService.GetDetailsModel(id, this.userId); return(this.PartialView("_DetailsPartial", model)); }