static void Main(string[] args) { //string findCityNameUrl = string.Format("http://partners.api.skyscanner.net/apiservices/browsequotes/v1.0/UK/CNY/en-GB/BJSA-sky/CSHA-sky/2017-04-19/?apiKey=ma452197785131011345379685638992", "beijing"); //HttpWebRequest request = WebRequest.Create(findCityNameUrl) as HttpWebRequest; //using (HttpWebResponse response = request.GetResponse() as HttpWebResponse) //{ // StreamReader reader = new StreamReader(response.GetResponseStream()); // //Console.WriteLine(reader.ReadToEnd()); // //Console.ReadKey(); // //List<Places> p = new List<Places>(); // string jsonContent = reader.ReadToEnd(); // List<Currencies> currency = new List<Currencies>(); // List<Quotes> quote = new List<Quotes>(); // List<AirPlaces> places = new List<AirPlaces>(); // List<Carriers> carriers = new List<Carriers>(); // //string resultQeruy = getData(query.fromLocation, query.toLocation, query.dateTime, query.dateTime); // JObject o = JObject.Parse(jsonContent); // currency = JsonConvert.DeserializeObject<List<Currencies>>(o["Currencies"].ToString()); // quote = JsonConvert.DeserializeObject<List<Quotes>>(o["Quotes"].ToString()); // JArray ja = JArray.Parse(o["Quotes"].ToString()); // for(int i = 0;i<ja.Count;i++) // { // JObject j = JObject.Parse(ja[i].ToString()); // OutboundLeg ob = new OutboundLeg(); // ob = JsonConvert.DeserializeObject<OutboundLeg>(j["OutboundLeg"].ToString()); // quote[i].Outboudleg=ob; // string ji = ob.CarrierIds[0].ToString(); // //JArray jarry1 = JArray.Parse(j["OutboundLeg"].ToString()); // } // places = JsonConvert.DeserializeObject<List<AirPlaces>>(o["Places"].ToString()); // carriers = JsonConvert.DeserializeObject<List<Carriers>>(o["Carriers"].ToString()); //DateTime t = DateTime.Today; //Console.WriteLine(t.Year.ToString()); //Console.WriteLine(t.Month.ToString()); //Console.WriteLine(t.Day.ToString()); //Console.WriteLine(t.DayOfYear); //Console.WriteLine(t.AddDays(1).Day); Chronic.Parser p = new Chronic.Parser(); Chronic.Options op = new Chronic.Options(); var r = p.Parse("today"); var t = DateTime.Now.ToString("yyyy-MM-dd"); Console.WriteLine(r.ToTime().ToString("yyyy-MM-dd")); Console.ReadKey(); //JObject o = JObject.Parse(jsonContent); //p =JsonConvert.DeserializeObject<List<Places>>(o["Places"].ToString()); //p[0].CityId.ToString(); //XmlReader xr = XmlReader.Create(reader); //DataSet objDataSet = new DataSet(); //objDataSet.ReadXml(reader.ReadToEnd()); //} }
// POST api/<controller> public IHttpActionResult Post([FromBody] PostInput data) { Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-GB"); if (data.Keywords == null) { data.Keywords = new string[0]; } List <string> addkeywords = new List <string>(); foreach (string key in data.Keywords) { string[] ks = key.Split(' '); if (ks.Length == 2) { addkeywords.AddRange(ks); } if (ks.Length > 2) { addkeywords.AddRange(ks.Zip(ks.Skip(1), (x, y) => x + " " + y)); } } data.Keywords = data.Keywords.Concat(addkeywords).ToArray(); (Coordinate[] coordinates, string[] cities) = ApiInterface.GetHotelLocations(data); var parser = new Chronic.Parser(); if (data.ArrivalDate == null || data.ArrivalDate == "") { data.ArrivalDate = "today"; } if (data.DepartureDate == null || data.DepartureDate == "") { data.DepartureDate = "next week"; } if (data.Image == null) { data.Image = ""; } var opt = new Chronic.Options(); opt.EndianPrecedence = Chronic.EndianPrecedence.Little; DateTime arrivalDate; DateTime departureDate; if (data.ArrivalDate != null) { data.ArrivalDate.Replace('.', '/'); } if (data.DepartureDate != null) { data.DepartureDate.Replace('.', '/'); } try { arrivalDate = DateTime.Parse(data.ArrivalDate, null); } catch { arrivalDate = parser.Parse(data.ArrivalDate, opt).Start.Value; } try { departureDate = DateTime.Parse(data.DepartureDate, null); } catch { departureDate = parser.Parse(data.DepartureDate, opt).Start.Value; } Hotel[] hotels = coordinates.SelectMany(x => ApiInterface.Check24(x.lat, x.lng, arrivalDate, departureDate)).ToArray(); hotels = hotels.Where((x, i) => !hotels.Take(i).Any(y => y.Id == x.Id)).ToArray(); return(Ok(new { Hotels = hotels.Take(data.MaxOutputSize), Coordinates = coordinates, Cities = cities })); }