public async Task <VehicleViewModel> GetVehicleByVIN(string vin, int garageId) { var vehicle = await _vehicleFactory.GetVehicleByVIN(vin); var result = new VehicleViewModel(); if (vehicle != null) { result = vehicle.Adapt <VehicleViewModel>(); result.Driver = new DriverViewModel() { Notes = vehicle.DriverNotes, CellPhone = vehicle.DriverCellphone, Email = vehicle.DriverEmail, Name = vehicle.DriverName, Phone = vehicle.DriverPhone }; result.Owner = new OwnerViewModel() { Address = vehicle.OwnerAddress, Company = vehicle.OwnerCompany, Email = vehicle.OwnerEmail, Name = vehicle.OwnerName, Phone = vehicle.OwnerPhone, GarageId = garageId, OwnerList = await GetOwnerSelectListItem(garageId, result.VehicleOwnerId) }; result.LicencePlate = vehicle.LicencePlate; result.SelectedMaintenancePlan = vehicle.MaintenancePlanId; result.OilTypeId = vehicle.OilTypeId; result.EntryDate = DateTime.Parse(vehicle.EntryDate).ToString("dd/MM/yy"); result.Programs = await GetVehiclePrograms(vehicle.Id, garageId); } else { //Get VIN Decode values var vinResult = await _vinQueryService.GetVINDecode(vin); if (vinResult.VIN == null) { return(new VehicleViewModel()); } result = new VehicleViewModel() { VinCode = vinResult.VIN, Description = vinResult.Description, Year = Convert.ToInt32(vinResult.Year), Make = vinResult.Make, Model = vinResult.Model, BrakeSystem = vinResult.BrakeSystem, Engine = vinResult.Engine, Seating = vinResult.Seating, Steering = vinResult.Steering, Propulsion = vinResult.DriveLine, Transmission = vinResult.Transmission, EntryDate = new DateTime(Convert.ToInt32(vinResult.Year), 6, 1).ToString("dd/MM/yy"), IsVINDecode = true }; } return(result); }