Ejemplo n.º 1
0
        private Vehicle[] GenerateDummyVehicles(Guid? uid, string[] vins, double? latitude, double? longitude)
        {
            var vehicles = new List<Vehicle>();

            var vehicle = new Vehicle()
            {
                AttributesDictionary = new Dictionary<string, string>(),
                Distance = 10.0,
                Images = new[] { "Test1.jpg", "Test2.jpg", "Test3.jpg" },
                MasterImage = "MasterImage.jpg",
                Vin = "12345678901234567"
            };

            if (vins != null)
            {
                int index = 0;

                foreach (var vin in vins)
                {
                    vehicle.AttributesDictionary.Add("ExcludeVin" + index, vin);
                    index++;
                }
            }

            vehicle.AttributesDictionary.Add("uid", uid.HasValue ? uid.Value.ToString() : null);

            vehicle.AttributesDictionary.Add("latitude", latitude.HasValue ? latitude.Value.ToString(CultureInfo.CurrentCulture) : null);

            vehicle.AttributesDictionary.Add("longitude", longitude.HasValue ? longitude.Value.ToString(CultureInfo.CurrentCulture) : null);

            vehicles.Add(vehicle);

            return vehicles.ToArray();
        }
Ejemplo n.º 2
0
        public Vehicle[] GetVehicles(
            [FromUri] Guid? uid,
            [FromUri] string[] vins,
            [FromUri] double? latitude,
            [FromUri] double? longitude)
        {
            string pointText = null;
            DbGeography location = null;

            List<Vehicle> vehicles = new List<Vehicle>();
            using (var context = new Business.Entities.Vinder())
            {
                IQueryable<Business.Entities.Vehicle> databaseVehicles = null;

                if (latitude == null || longitude == null)
                {
                    databaseVehicles = context.Vehicles.OrderBy(r => Guid.NewGuid()).Take(5);
                }
                else
                {
                    pointText = String.Format("POINT({0} {1})", longitude, latitude);
                    location = DbGeography.FromText(pointText);

                    if (vins != null && vins.Length == 5)
                    {
                        //exclude vins
                    }
                    else
                    {
                        var dealers = context.Dealers.Where(d => location.Distance(d.GeoLocation) <= Distance);

                        databaseVehicles = (from d in dealers
                                            from v in d.Vehicles
                                            select v).OrderBy(r => Guid.NewGuid()).Take(5);
                    }
                }

                foreach (var databaseVehicle in databaseVehicles.ToList())
                {
                    var vehicle = new Vehicle()
                    {
                        AttributesDictionary = new Dictionary<string, string>(),
                        Images = new[] { "Test1.jpg", "Test2.jpg", "Test3.jpg" },
                        MasterImage = "MasterImage.jpg",
                        Vin = databaseVehicle.Vin,
                    };

                    if (pointText != null && location != null)
                    {
                        double miles = databaseVehicle.Dealer.GeoLocation.Distance(location).Value / 0.000621371;
                        vehicle.Distance = miles;
                    }

                    vehicle.AttributesDictionary.Add("Stock Number", databaseVehicle.StockNumber);
                    vehicle.AttributesDictionary.Add("Model Year", databaseVehicle.ModelYear.HasValue ? databaseVehicle.ModelYear.Value.ToString() : null);
                    vehicle.AttributesDictionary.Add("Make", databaseVehicle.Make);
                    vehicle.AttributesDictionary.Add("Model", databaseVehicle.Model);
                    vehicle.AttributesDictionary.Add("Series", databaseVehicle.Series);
                    vehicle.AttributesDictionary.Add("Odometer", databaseVehicle.Odometer.HasValue ? databaseVehicle.Odometer.Value.ToString() : null);
                    vehicle.AttributesDictionary.Add("Price", databaseVehicle.Price.HasValue ? databaseVehicle.Price.Value.ToString() : null);
                    vehicle.AttributesDictionary.Add("Body Description", databaseVehicle.BodyDescription);
                    vehicle.AttributesDictionary.Add("Engine Description", databaseVehicle.EngineDescription);
                    vehicle.AttributesDictionary.Add("Transmission Description", databaseVehicle.TransmissionDescription);
                    vehicle.AttributesDictionary.Add("Exterior Color", databaseVehicle.ExteriorColor);
                    vehicle.AttributesDictionary.Add("Interior Color", databaseVehicle.InteriorColor);
                    vehicle.AttributesDictionary.Add("Interior Type", databaseVehicle.InteriorType);
                    vehicle.AttributesDictionary.Add("New/Used", databaseVehicle.NewUsed);

                    vehicles.Add(vehicle);
                }
            }

            return vehicles.ToArray();
        }