public async Task <CarVinRequest> HandleSelectionPicture(CarVinRequest request) { await CrossMedia.Current.Initialize(); if (!CrossMedia.Current.IsPickPhotoSupported) { request.Errors.Add("Can't Access Library"); request.Success = false; return(request); } using (UserDialogs.Instance.Loading("Uploading image...")) { var file = await CrossMedia.Current.PickPhotoAsync(new PickMediaOptions()); if (file == null) { request.Errors.Add("Couldn't read file"); request.Success = false; return(request); } var memoryStream = new MemoryStream(); file.GetStream().CopyTo(memoryStream); //request.Car = await GetRecognisedCar(memoryStream.ToArray()); request.Car.CarImage = UploadImageImgur(file); request.Success = true; File.Delete(file.Path); } return(request); }
private static int CalculateTax(CarVinRequest car) { if (Convert.ToInt32(car.Car.Cc) == 0) { return(Convert.ToInt32(0)); } if (Convert.ToInt32(car.Car.Cc) <= 1600) { return(Convert.ToInt32(car.Car.Cc) / 200 * 8); } if (Convert.ToInt32(car.Car.Cc) <= 2000) { return(Convert.ToInt32(car.Car.Cc) / 200 * 18); } if (Convert.ToInt32(car.Car.Cc) <= 2600) { return(Convert.ToInt32(car.Car.Cc) / 200 * 72); } if (Convert.ToInt32(car.Car.Cc) <= 3000) { return(Convert.ToInt32(car.Car.Cc) / 200 * 144); } if (Convert.ToInt32(car.Car.Cc) > 3001) { return(Convert.ToInt32(car.Car.Cc) / 200 * 290); } return(-1); }
private async void Add_New_Image_Button(object sender, System.EventArgs e) { var action = await DisplayActionSheet("How would you like to add the image?", "Cancel", null, "Take Photo", "Select Photo"); switch (action) { case "Take Photo": { _carRequest = await App.ExternalAPIManager.HandleTakingPicture(_carRequest); if (_carRequest.Success) { var newImage = new CarImages { carId = _car.Id, CarImage = _carRequest.Car.CarImage }; //images.Add(_carRequest.Car.CarImage); await App.CarImagesManager.AddCarImages(newImage); await PopulateCoverFlow(true); } else { await DisplayAlert("Error", _carRequest.Errors[0], "OK"); } break; } case "Select Photo": { _carRequest = await App.ExternalAPIManager.HandleSelectionPicture(_carRequest); if (_carRequest.Success) { var newImage = new CarImages { carId = _car.Id, CarImage = _carRequest.Car.CarImage }; //carImages.Add(_carRequest.Car.CarImage); await App.CarImagesManager.AddCarImages(newImage); await PopulateCoverFlow(true); } else { await DisplayAlert("Error", _carRequest.Errors[0], "OK"); } break; } } }
protected override void OnAppearing() { base.OnAppearing(); _carRequest = new CarVinRequest { Car = new Car(), Errors = new List <string>() }; }
private async void AddImageButton(object sender, EventArgs e) { var action = await DisplayActionSheet("How would you like to add the image?", "Cancel", null, "Take Photo", "Select Photo"); switch (action) { case "Take Photo": { _carRequest = await App.ExternalAPIManager.HandleTakingPicture(_carRequest); if (_carRequest.Success) { UserDialogs.Instance.Toast("Done!"); image.Source = _carRequest.Car.CarImage; _newCarImage = new CarImages { CarImage = _carRequest.Car.CarImage }; } else { await DisplayAlert("Error", _carRequest.Errors[0], "OK"); } break; } case "Select Photo": { _carRequest = await App.ExternalAPIManager.HandleSelectionPicture(_carRequest); if (_carRequest.Success) { UserDialogs.Instance.Toast("Done!"); image.Source = _carRequest.Car.CarImage; _newCarImage = new CarImages { CarImage = _carRequest.Car.CarImage }; } else { await DisplayAlert("Error", _carRequest.Errors[0], "OK"); } break; } } }
public async Task <CarVinRequest> GetCarByTakingPictureAsync(MediaFile file) { var request = new CarVinRequest { Errors = new List <string>() }; //await CrossMedia.Current.Initialize(); //if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported) //{ // request.Errors.Add("No camera"); // request.Success = false; // return request; //} //var file = await CrossMedia.Current.TakePhotoAsync(new StoreCameraMediaOptions //{ // Directory = "Sample", // Name = "test.jpg" //}); if (file == null) { request.Errors.Add("Couldn't save/find file"); request.Success = false; return(request); } var memoryStream = new MemoryStream(); file.GetStream().CopyTo(memoryStream); request.Car = await GetRecognisedCar(memoryStream.ToArray()); if (request.Car == null) { request.Success = false; request.Errors.Add("Unable to get car"); return(request); } request.Car.CarImage = UploadImageImgur(file); request.Success = true; File.Delete(file.Path); return(request); }
public FillExtraFormPage(CarVinRequest car = null) { InitializeComponent(); if (car == null) { _carRequest = new CarVinRequest { Car = new Car(), Errors = new List <string>() } } ; else { _carRequest = car; } }
public async Task <CarVinRequest> HandleTakingPicture(CarVinRequest request) { await CrossMedia.Current.Initialize(); if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported) { request.Errors.Add("No camera"); request.Success = false; return(request); } var file = await CrossMedia.Current.TakePhotoAsync(new StoreCameraMediaOptions { Directory = "Sample", Name = "test.jpg" }); using (UserDialogs.Instance.Loading("Uploading image...")) { if (file == null) { request.Errors.Add("Couldn't save/find file"); request.Success = false; return(request); } var memoryStream = new MemoryStream(); file.GetStream().CopyTo(memoryStream); //request.Car = await GetRecognisedCar(memoryStream.ToArray()); request.Car.CarImage = UploadImageImgur(file); request.Success = true; File.Delete(file.Path); } return(request); }
public AddCarMissingDetailsFormPage(CarVinRequest request) { InitializeComponent(); _request = request; }
public async Task <CarVinRequest> GetCarByVin(string vin) { var request = new CarVinRequest { Errors = new List <string>() }; var id = vin; var test = $"{id}|decode|{Constants.vinApiKey}|{Constants.vinSecretKey}"; var dataHash = Encoding.ASCII.GetBytes(test); var hashData = new SHA1Managed().ComputeHash(dataHash); var hash = hashData.Aggregate(string.Empty, (current, b) => current + b.ToString("X2")); var controlSum = hash.Substring(0, 10); var client = new HttpClient(); var response = await client.GetStringAsync($"{Constants.vinUrl}/{Constants.vinApiKey}/{controlSum}/decode/{vin}.json"); client.Dispose(); if (response == null) { request.Errors.Add("Could not get data"); request.Success = false; return(request); } var data = JObject.Parse(response); var car = new Car(); foreach (var item in data["decode"]) { car.Make = car.Make ?? (item["label"].ToString() == "Make" ? item["value"].ToString() : null); car.Manufacturer = car.Manufacturer ?? (item["label"].ToString() == "Manufacturer" ? item["value"].ToString() : null); car.Plant = car.Plant ?? (item["label"].ToString() == "Manufacturer Address" ? item["value"].ToString() : null); car.ModelYear = car.ModelYear ?? (item["label"].ToString() == "Model Year" ? item["value"].ToString() : null); car.Model = car.Model ?? (item["label"].ToString() == "Model" ? item["value"].ToString() : null); car.Body = car.Body ?? (item["label"].ToString() == "Body" ? item["value"].ToString() : null); car.Drive = car.Drive ?? (item["label"].ToString() == "Drive" ? item["value"].ToString() : null); car.NumberofSeats = car.NumberofSeats ?? (item["label"].ToString() == "Number of Seats" ? item["value"].ToString() : null); car.NumberofDoors = car.NumberofDoors ?? (item["label"].ToString() == "Number of Doors" ? item["value"].ToString() : null); car.Steering = car.Steering ?? (item["label"].ToString() == "Steering" ? item["value"].ToString() : null); car.Cc = car.Cc ?? (item["label"].ToString() == "Engine Displacement (ccm)" ? item["value"].ToString() : null); car.EngineCylinders = car.EngineCylinders ?? (item["label"].ToString() == "Engine Cylinders" ? item["value"].ToString() : null); car.Transmission = car.Transmission ?? (item["label"].ToString() == "Transmission" ? item["value"].ToString() : null); car.NumberofGears = car.NumberofGears ?? (item["label"].ToString() == "Number of Gears" ? item["value"].ToString() : null); car.Color = car.Color ?? (item["label"].ToString() == "Color" ? item["value"].ToString() : null); car.Engine = car.Engine ?? (item["label"].ToString() == "Engine (full)" ? item["value"].ToString() : null); car.Fuel = car.Fuel ?? (item["label"].ToString() == "Fuel Type - Primary" ? item["value"].ToString() : null); car.Power = car.Power ?? (item["label"].ToString() == "Engine Power (kW)" ? item["value"].ToString() : null); car.Made = car.Made ?? (item["label"].ToString() == "Made" ? item["value"].ToString() : null); car.Emissions = car.Emissions ?? (item["label"].ToString() == "Emission Standard" ? item["value"].ToString() : null); //Odometer = data["decode"][2]["value"].ToString() } car.Vin = vin; var userId = await SecureStorage.GetAsync("UserId"); car.UserId = Convert.ToInt32(userId); request.Car = car; request.Success = true; return(request); }
public Task <CarVinRequest> HandleTakingPicture(CarVinRequest request) { return(_service.HandleTakingPicture(request)); }
public Task <CarVinRequest> HandleSelectionPicture(CarVinRequest request) { return(_service.HandleSelectionPicture(request)); }