Example #1
0
        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);
        }