public static void AddIndex(CustomClasses.Hotel hotel) { foreach (var timing in hotel.availability) { for (DateTime date = timing.from; date <= timing.to; date = date.AddDays(1)) { Add(date, hotel.id); } } }
public static CustomClasses.WebServiceResponse Execute(string url) { CustomClasses.WebServiceResponse retVal = new CustomClasses.WebServiceResponse(); retVal.Status = (int)StatusEnum.OK; string resStr = string.Empty; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); bool arrayStarted = false; try { List <CustomClasses.Hotel> hotels = null; int count = 0; HttpClient client = new HttpClient(); using (Stream stream = client.GetStreamAsync(url).Result) using (StreamReader sr = new StreamReader(stream)) using (JsonReader reader = new JsonTextReader(sr)) { CustomClasses.Hotel hotel = null; JsonSerializer serializer = new JsonSerializer { DateFormatString = "dd-MM-yyyy" }; while (reader.Read()) { if (arrayStarted && reader.TokenType == JsonToken.StartObject) { hotel = serializer.Deserialize <CustomClasses.Hotel>(reader); hotel.id = count; hotels.Add(hotel); DateIndexBuilder.AddIndex(hotel); } else if (reader.TokenType == JsonToken.StartArray) { arrayStarted = true; hotels = new List <CustomClasses.Hotel>(); } count++; } } retVal.Data = hotels; } catch (WebException ex) { retVal.Status = (int)StatusEnum.ERROR; retVal.ErrorMessage = new StreamReader(ex.Response.GetResponseStream()).ReadToEnd(); } return(retVal); }