Exemple #1
0
        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);
 }
Exemple #3
0
        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;
            }
            }
        }
Exemple #4
0
        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;
            }
            }
        }
Exemple #6
0
        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;
            }
        }
Exemple #8
0
        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);
        }
Exemple #9
0
        public AddCarMissingDetailsFormPage(CarVinRequest request)
        {
            InitializeComponent();

            _request = request;
        }
Exemple #10
0
        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);
        }
Exemple #11
0
 public Task <CarVinRequest> HandleTakingPicture(CarVinRequest request)
 {
     return(_service.HandleTakingPicture(request));
 }
Exemple #12
0
 public Task <CarVinRequest> HandleSelectionPicture(CarVinRequest request)
 {
     return(_service.HandleSelectionPicture(request));
 }