private JArray findCarRadius(string listcar, FindCar find) { JArray array = new JArray(); List <Car> list = new List <Car>(); Newtonsoft.Json.Linq.JObject js_listcar = Newtonsoft.Json.Linq.JObject.Parse(listcar); foreach (var a in js_listcar) { Car car = JsonConvert.DeserializeObject <Car>(a.Value.ToString()); car.Id = a.Key.ToString(); list.Add(car); } foreach (Car tem in list) { var distance = new Coordinates(find.Lat, find.Lng) .DistanceTo( new Coordinates(tem.Lat, tem.Lng), UnitOfLength.Kilometers ); if (distance <= (find.Radius) / 1000 && tem.Status == 0) { var json = JsonConvert.SerializeObject(tem, Formatting.Indented); Newtonsoft.Json.Linq.JObject jobject = Newtonsoft.Json.Linq.JObject.Parse(json); array.Add(jobject); } } return(array); }
public void TestFind(string result) { JSONDeserialize test = new JSONDeserialize(result); List <Car> list = new List <Car>(); BMW car1 = new BMW("BMW", "D2", "compartment", "Automatic", "eletro", "4", "120", "ClimateControl", "leather"); BMW car2 = new BMW("BMW", "D1", "compartment", "Automatic", "eletro", "4", "120", "ClimateControl", "leather"); BMW car3 = new BMW("BMW", "D3", "compartment", "Automatic", "eletro", "4", "120", "ClimateControl", "leather"); List <Car> catalog = new List <Car>(); catalog.Add(car1); catalog.Add(car2); catalog.Add(car3); list = test.Deserialize(); int i = 0; foreach (EnteredCar element in list) { FindCar findcar = new FindCar(catalog, element); i = findcar.Find(); } Assert.AreEqual(2, i); }
public JArray FindDriver([FromBody] FindCar find) { string URL = "https://barg-9f201.firebaseio.com/driver.json"; HttpWebRequest request = WebRequest.CreateHttp(URL); request.Method = "Get"; request.ContentType = "application/json : "; HttpWebResponse response = request.GetResponse() as HttpWebResponse; using (Stream responsestream = response.GetResponseStream()) { var Read = new StreamReader(responsestream).ReadToEnd(); if (Read == "null") { return(null); } JArray listcar = findCarRadius(Read, find); if (listcar == null) { return(null); } return(listcar); } }