public string GetAvailableTrips2(int sourceId, int destinationId, String dateofjourney, Int16 resultSetIndex, String ConsumerKey, String ConsumerSecret) { try { ClientAPIList objClientAPIList = new ClientAPIList(); BusesAvailabilityResponse objBusesAvailabilityResponse = new BusesAvailabilityResponse(); if (resultSetIndex != 2) { HttpContext.Current.Session["AvailResponse"] = null; HttpRuntime.Cache["bus"] = ""; //Check if Cache already contains the Providers API List //Else get it from database GetAPIProvidersList(ConsumerKey, ConsumerSecret); objClientAPIList = (ClientAPIList)HttpContext.Current.Cache["ClientAPI-" + ConsumerKey]; //Check if atleast one provider is accessible if (objClientAPIList != null && objClientAPIList.Count > 0) { BusesSearchFilter objBusesSearchFilter = new BusesSearchFilter(); threadcount = Convert.ToInt32(objClientAPIList.Count()); thread = new Thread[threadcount]; for (i = 0; i < thread.Count(); i++) { thread[i] = new Thread(() => { if (objClientAPIList[i].ProviderName == "TICKETGOOSE") { int T = i; objBusesSearchFilter = GetCityIDsOfProviders(objBusesSearchFilter, objClientAPIList[T], sourceId, destinationId, dateofjourney); if (objBusesSearchFilter.SourceID > 0 && objBusesSearchFilter.DestinationID > 0) { TSID = Convert.ToInt32(objBusesSearchFilter.SourceID); TDID = Convert.ToInt32(objBusesSearchFilter.DestinationID); TDate = objBusesSearchFilter.JourneyDate; TURL = objClientAPIList[T].APIURL; TConsumerKey = objClientAPIList[T].ConsumerKey; TCOnsumerSecretKey = objClientAPIList[T].ConsumerSecret; TPID = objClientAPIList[T].ProviderID; Tbus = Ticketgoose(TURL, TConsumerKey, TCOnsumerSecretKey, TPID, TSID, TDID, TDate); if (Tbus != null) { if (Tbus.Count() > 0) { bus = trips(Tbus); HttpRuntime.Cache["bus"] = Tbus; objBusesAvailabilityResponse.providersCount = 10; } } } } else if (objClientAPIList[i].ProviderName == "MORNINGSTAR") { int M = i; objBusesSearchFilter = GetCityIDsOfProviders(objBusesSearchFilter, objClientAPIList[M], sourceId, destinationId, dateofjourney); if (objBusesSearchFilter.SourceID > 0 && objBusesSearchFilter.DestinationID > 0) { MSID = Convert.ToInt32(objBusesSearchFilter.SourceID); MDID = Convert.ToInt32(objBusesSearchFilter.DestinationID); MDate = objBusesSearchFilter.JourneyDate; MURL = objClientAPIList[M].APIURL + "/"; MConsumerKey = objClientAPIList[M].ConsumerKey; MCOnsumerSecretKey = objClientAPIList[M].ConsumerSecret; MPID = objClientAPIList[M].ProviderID; MProviderName = objClientAPIList[M].ProviderName; Tbus = MORNINGSTAR(MURL, MConsumerKey, MCOnsumerSecretKey, MPID, MProviderName, MSID, MDID, MDate); if (Tbus != null) { if (Tbus.Count() > 0) { bus = trips(Tbus); } // b = true; } } } else if (objClientAPIList[i].ProviderName == "BITLA") { int B = i; bus = GETBITLROUTES(objBusesSearchFilter, objClientAPIList[B], sourceId, destinationId, dateofjourney); } else if (objClientAPIList[i].ProviderName == "KALLADA") { int kD = i; objBusesSearchFilter = GetCityIDsOfProviders(objBusesSearchFilter, objClientAPIList[kD], sourceId, destinationId, dateofjourney); if (objBusesSearchFilter.SourceID > 0 && objBusesSearchFilter.DestinationID > 0) { KDSID = Convert.ToInt32(objBusesSearchFilter.SourceID); KDDID = Convert.ToInt32(objBusesSearchFilter.DestinationID); KDDate = objBusesSearchFilter.JourneyDate; KDURL = objClientAPIList[kD].APIURL; KDConsumerKey = objClientAPIList[kD].ConsumerKey; KDCOnsumerSecretKey = objClientAPIList[kD].ConsumerSecret; KDProviderName = objClientAPIList[kD].ProviderName; Kbus = KALLADA(KDURL, KDConsumerKey, KDCOnsumerSecretKey, KDProviderName, KDSID, KDDID, KDDate); if (Kbus != null) { if (Kbus.Count() > 0) { bus = trips(Kbus); } } } } else if (objClientAPIList[i].ProviderName == "SAIANJANA") { int s = i; objBusesSearchFilter = GetCityIDsOfProviders(objBusesSearchFilter, objClientAPIList[s], sourceId, destinationId, dateofjourney); if (objBusesSearchFilter.SourceID > 0 && objBusesSearchFilter.DestinationID > 0) { SSID = Convert.ToInt32(objBusesSearchFilter.SourceID); SDID = Convert.ToInt32(objBusesSearchFilter.DestinationID); SDate = objBusesSearchFilter.JourneyDate; SURL = objClientAPIList[s].APIURL; SConsumerKey = objClientAPIList[s].ConsumerKey; SCOnsumerSecretKey = objClientAPIList[s].ConsumerSecret; SProviderName = objClientAPIList[s].ProviderName; Kbus = SAIANJANA(SURL, SConsumerKey, SCOnsumerSecretKey, SProviderName, SSID, SDID, SDate); if (Kbus != null) { if (Kbus.Count() > 0) { bus = trips(Kbus); } } } } else if (objClientAPIList[i].ProviderName == "SVR") { int sv = i; objBusesSearchFilter = GetCityIDsOfProviders(objBusesSearchFilter, objClientAPIList[sv], sourceId, destinationId, dateofjourney); if (objBusesSearchFilter.SourceID > 0 && objBusesSearchFilter.DestinationID > 0) { SVSID = Convert.ToInt32(objBusesSearchFilter.SourceID); SVDID = Convert.ToInt32(objBusesSearchFilter.DestinationID); SVDate = objBusesSearchFilter.JourneyDate; SVURL = objClientAPIList[sv].APIURL; SVConsumerKey = objClientAPIList[sv].ConsumerKey; SVCOnsumerSecretKey = objClientAPIList[sv].ConsumerSecret; SVProviderName = objClientAPIList[sv].ProviderName; Kbus = GETSVR(SVURL, SVConsumerKey, SVCOnsumerSecretKey, SVProviderName, SVSID, SVDID, SVDate); if (Kbus != null) { if (Kbus.Count() > 0) { bus = trips(Kbus); } } } } else if (objClientAPIList[i].ProviderName == "RAJESH") { int r = i; objBusesSearchFilter = GetCityIDsOfProviders(objBusesSearchFilter, objClientAPIList[r], sourceId, destinationId, dateofjourney); if (objBusesSearchFilter.SourceID > 0 && objBusesSearchFilter.DestinationID > 0) { RSID = Convert.ToInt32(objBusesSearchFilter.SourceID); RDID = Convert.ToInt32(objBusesSearchFilter.DestinationID); RDate = objBusesSearchFilter.JourneyDate; RURL = objClientAPIList[r].APIURL; RConsumerKey = objClientAPIList[r].ConsumerKey; RCOnsumerSecretKey = objClientAPIList[r].ConsumerSecret; RProviderName = objClientAPIList[r].ProviderName; Kbus = Rajesh(RURL, RConsumerKey, RCOnsumerSecretKey, RProviderName, RSID, RDID, RDate); if (Kbus != null) { if (Kbus.Count() > 0) { bus = trips(Kbus); //HttpRuntime.Cache["bus"] = Tbus; } } } } else if (objClientAPIList[i].ProviderName == "KAVERI") { int k = i; objBusesSearchFilter = GetCityIDsOfProviders(objBusesSearchFilter, objClientAPIList[k], sourceId, destinationId, dateofjourney); if (objBusesSearchFilter.SourceID > 0 && objBusesSearchFilter.DestinationID > 0) { KSID = Convert.ToInt32(objBusesSearchFilter.SourceID); KDID = Convert.ToInt32(objBusesSearchFilter.DestinationID); KDate = objBusesSearchFilter.JourneyDate; KURL = objClientAPIList[i].APIURL; KConsumerKey = objClientAPIList[k].ConsumerKey; KCOnsumerSecretKey = objClientAPIList[k].ConsumerSecret; KProviderName = objClientAPIList[k].ProviderName; Kbus = KAVERI(KURL, KConsumerKey, KCOnsumerSecretKey, KProviderName, KSID, KDID, KDate); if (Kbus != null) { if (Kbus.Count() > 0) { bus = trips(Kbus); //HttpRuntime.Cache["Kbus"] = Kbus; } } } } }); // threat initialisation ends if (c == true) { thread[i].Start(); thread[i].Join(500); if (i == thread.Count() - 1) { i = thread.Count() - 1; break; } } } } } if (resultSetIndex != 2) { Found: int j = 0; foreach (var thd in thread) { if (thd.IsAlive) { thd.Join(1000); b = false; } else { j++; } if (j == threadcount) { b = true; i = 0; break; } } if (c == true) { c = false; } if (b == false) { goto Found; } else { b = false; //check if resultset index exceeds accessible providers list call the requested api if (resultSetIndex > 0 && resultSetIndex <= objClientAPIList.Count) { try { // objBusesAvailabilityResponse.availableTrips = GetAvailableTripsByProviderName(objClientAPIList[i], objBusesSearchFilter); objBusesAvailabilityResponse.responseStatus = HttpStatusCode.OK; } catch (Exception ex) { //return the exception objBusesAvailabilityResponse.availableTrips = null; objBusesAvailabilityResponse.responseStatus = HttpStatusCode.BadRequest; objBusesAvailabilityResponse.message = ex.Message; } if (objBusesAvailabilityResponse.providersCount == 10) { objBusesAvailabilityResponse.providersCount = 0; } else { objBusesAvailabilityResponse.providersCount = objClientAPIList.Count - resultSetIndex; } } else { objBusesAvailabilityResponse.providersCount = 0; objBusesAvailabilityResponse.responseStatus = HttpStatusCode.BadRequest; } } } if (HttpContext.Current.Session["AvailResponse"] == null) { objBusesAvailabilityResponse.availableTrips = bus; HttpContext.Current.Session["AvailResponse"] = objBusesAvailabilityResponse; HttpRuntime.Cache["bus"] = ""; } else { bump: if (HttpRuntime.Cache["bus"].ToString() != "") { Tbus = (AvailableTrips)HttpRuntime.Cache["bus"]; if (Tbus.Count() > 0) { BusesAvailabilityResponse busback = new BusesAvailabilityResponse(); Tbus = (AvailableTrips)HttpRuntime.Cache["bus"]; busback = (BusesAvailabilityResponse)HttpContext.Current.Session["AvailResponse"]; bus = trips((AvailableTrips)busback.availableTrips); bus = trips(Tbus); busback.availableTrips = bus; busback.responseStatus = HttpStatusCode.OK; busback.providersCount = 0; HttpContext.Current.Session["AvailResponse"] = busback; objBusesAvailabilityResponse.availableTrips = Tbus; objBusesAvailabilityResponse.responseStatus = HttpStatusCode.OK; objBusesAvailabilityResponse.providersCount = 0; HttpRuntime.Cache["bus"] = ""; } } else { objClientAPIList = (ClientAPIList)HttpContext.Current.Cache["ClientAPI-" + ConsumerKey]; if (objClientAPIList[1].ProviderName == "TICKETGOOSE") { goto bump; } else { } } } return JsonConvert.SerializeObject(objBusesAvailabilityResponse); } catch (Exception ex) { throw ex; } }
public string GetAvailableTrips(int sourceId, int destinationId, String dateofjourney, Int16 resultSetIndex, String ConsumerKey, String ConsumerSecret) { try { ClientAPIList objClientAPIList = new ClientAPIList(); BusesAvailabilityResponse objBusesAvailabilityResponse = new BusesAvailabilityResponse(); if (resultSetIndex != 2) { HttpContext.Current.Session["AvailResponse"] = null; HttpRuntime.Cache["bus"] = ""; //Check if Cache already contains the Providers API List //Else get it from database GetAPIProvidersList(ConsumerKey, ConsumerSecret); objClientAPIList = (ClientAPIList)HttpContext.Current.Cache["ClientAPI-" + ConsumerKey]; //Check if atleast one provider is accessible if (objClientAPIList != null && objClientAPIList.Count > 0) { BusesSearchFilter objBusesSearchFilter = new BusesSearchFilter(); threadcount = Convert.ToInt32(objClientAPIList.Count()); thread = new Thread[threadcount]; for (i = 0; i < thread.Count(); i++) { thread[i] = new Thread(() => { if (objClientAPIList[i].ProviderName == "TICKETGOOSE") { int T = i; objBusesSearchFilter = GetCityIDsOfProviders(objBusesSearchFilter, objClientAPIList[T], sourceId, destinationId, dateofjourney); if (Tsource_ids.ToString() != "" && TDestination_Ids.ToString() != "") { string[] Tsu = Tsource_ids.Split(','); string[] Tdu = TDestination_Ids.Split(','); string[] TSdr = Tsu.Distinct().ToArray(); string[] TDdr = Tdu.Distinct().ToArray(); foreach (string Tsr in TSdr) { foreach (string Tdr in TDdr) { TSID = Convert.ToInt32(Tsr); TDID = Convert.ToInt32(Tdr); TDate = objBusesSearchFilter.JourneyDate; TURL = objClientAPIList[T].APIURL; TConsumerKey = objClientAPIList[T].ConsumerKey; TCOnsumerSecretKey = objClientAPIList[T].ConsumerSecret; TPID = objClientAPIList[T].ProviderID; Tbus = Ticketgoose(TURL, TConsumerKey, TCOnsumerSecretKey, TPID, TSID, TDID, TDate); if (Tbus != null) { if (Tbus.Count() > 0) { bus = trips(Tbus); HttpRuntime.Cache["bus"] = Tbus; objBusesAvailabilityResponse.providersCount = 10; } } } } } } else if (objClientAPIList[i].ProviderName == "MORNINGSTAR") { int M = i; objBusesSearchFilter = GetCityIDsOfProviders(objBusesSearchFilter, objClientAPIList[M], sourceId, destinationId, dateofjourney); if (Msource_ids.ToString() != "" && MDestination_Ids.ToString() != "") { string[] Msu = Msource_ids.Split(','); string[] Mdu = MDestination_Ids.Split(','); string[] MSdr = Msu.Distinct().ToArray(); string[] MDdr = Mdu.Distinct().ToArray(); foreach (string Msr in MSdr) { foreach (string Mdr in MDdr) { MSID = Convert.ToInt32(Msr); MDID = Convert.ToInt32(Mdr); MDate = objBusesSearchFilter.JourneyDate; MURL = objClientAPIList[M].APIURL + "/"; MConsumerKey = objClientAPIList[M].ConsumerKey; MCOnsumerSecretKey = objClientAPIList[M].ConsumerSecret; MPID = objClientAPIList[M].ProviderID; MProviderName = objClientAPIList[M].ProviderName; Tbus = MORNINGSTAR(MURL, MConsumerKey, MCOnsumerSecretKey, MPID, MProviderName, MSID, MDID, MDate); if (Tbus != null) { if (Tbus.Count() > 0) { bus = trips(Tbus); } } } } } } else if (objClientAPIList[i].ProviderName == "BITLA") { //objBusesSearchFilter.SourceID = Sdr.ToString() == "" ? 0 : int.Parse(Sdr.ToString()); //objBusesSearchFilter.DestinationID = Ddr.ToString() == "" ? 0 : Convert.ToInt32(Ddr.ToString()); //objBusesSearchFilter.JourneyDate = dateofjourney; int B = i; objBusesSearchFilter = GetCityIDsOfProviders(objBusesSearchFilter, objClientAPIList[B], sourceId, destinationId, dateofjourney); if (source_ids.ToString() != "" && Destination_Ids.ToString() != "") { string[] su = source_ids.Split(','); string[] du = Destination_Ids.Split(','); string[] SSdr = su.Distinct().ToArray(); string[] DDdr = du.Distinct().ToArray(); foreach (string Sdr in SSdr) { foreach (string Ddr in DDdr) { BSID = Convert.ToInt32(Sdr); BDID = Convert.ToInt32(Ddr); BDate = objBusesSearchFilter.JourneyDate; BURL = objClientAPIList[B].APIURL + "/"; BConsumerKey = objClientAPIList[B].ConsumerKey; BCOnsumerSecretKey = objClientAPIList[B].ConsumerSecret; BPID = objClientAPIList[B].ProviderID; BProviderName = objClientAPIList[B].ProviderName; Tbus = BITLA(BURL, BConsumerKey, BCOnsumerSecretKey, BPID, BProviderName, BSID, BDID, BDate); if (Tbus != null) { if (Tbus.Count() > 0) { bus = trips(Tbus); } } } } } } else if (objClientAPIList[i].ProviderName == "KALLADA") { int kD = i; objBusesSearchFilter = GetCityIDsOfProviders(objBusesSearchFilter, objClientAPIList[kD], sourceId, destinationId, dateofjourney); if (KDsource_ids.ToString() != "" && KDDestination_Ids.ToString() != "") { string[] KDsu = KDsource_ids.Split(','); string[] KDdu = KDDestination_Ids.Split(','); string[] KSdr = KDsu.Distinct().ToArray(); string[] KDdr = KDdu.Distinct().ToArray(); foreach (string Ksr in KSdr) { foreach (string Kdr in KDdr) { KDSID = Convert.ToInt32(Ksr); KDDID = Convert.ToInt32(Kdr); KDDate = objBusesSearchFilter.JourneyDate; KDURL = objClientAPIList[kD].APIURL; KDConsumerKey = objClientAPIList[kD].ConsumerKey; KDCOnsumerSecretKey = objClientAPIList[kD].ConsumerSecret; KDProviderName = objClientAPIList[kD].ProviderName; Kbus = KALLADA(KDURL, KDConsumerKey, KDCOnsumerSecretKey, KDProviderName, KDSID, KDDID, KDDate); if (Kbus != null) { if (Kbus.Count() > 0) { bus = trips(Kbus); } } } } } } else if (objClientAPIList[i].ProviderName == "SAIANJANA") { int s = i; objBusesSearchFilter = GetCityIDsOfProviders(objBusesSearchFilter, objClientAPIList[s], sourceId, destinationId, dateofjourney); if (SSsource_ids.ToString() != "" && SSDestination_Ids.ToString() != "") { string[] SSsu = SSsource_ids.Split(','); string[] SSdu = SSDestination_Ids.Split(','); string[] SSdr = SSsu.Distinct().ToArray(); string[] SDdr = SSdu.Distinct().ToArray(); foreach (string Ssr in SSdr) { foreach (string Sdr in SDdr) { SSID = Convert.ToInt32(Ssr); SDID = Convert.ToInt32(Sdr); SDate = objBusesSearchFilter.JourneyDate; SURL = objClientAPIList[s].APIURL; SConsumerKey = objClientAPIList[s].ConsumerKey; SCOnsumerSecretKey = objClientAPIList[s].ConsumerSecret; SProviderName = objClientAPIList[s].ProviderName; Kbus = SAIANJANA(SURL, SConsumerKey, SCOnsumerSecretKey, SProviderName, SSID, SDID, SDate); if (Kbus != null) { if (Kbus.Count() > 0) { bus = trips(Kbus); } } } } } } else if (objClientAPIList[i].ProviderName == "SVR") { int sv = i; objBusesSearchFilter = GetCityIDsOfProviders(objBusesSearchFilter, objClientAPIList[sv], sourceId, destinationId, dateofjourney); if (Ssource_ids.ToString() != "" && SDestination_Ids.ToString() != "") { string[] sssu = Ssource_ids.Split(','); string[] ssdu = SDestination_Ids.Split(','); string[] SSSdr = sssu.Distinct().ToArray(); string[] SSDdr = ssdu.Distinct().ToArray(); foreach (string SSsr in SSSdr) { foreach (string SSdr in SSDdr) { SVSID = Convert.ToInt32(SSsr); SVDID = Convert.ToInt32(SSdr); SVDate = objBusesSearchFilter.JourneyDate; SVURL = objClientAPIList[sv].APIURL; SVConsumerKey = objClientAPIList[sv].ConsumerKey; SVCOnsumerSecretKey = objClientAPIList[sv].ConsumerSecret; SVProviderName = objClientAPIList[sv].ProviderName; Kbus = GETSVR(SVURL, SVConsumerKey, SVCOnsumerSecretKey, SVProviderName, SVSID, SVDID, SVDate); if (Kbus != null) { if (Kbus.Count() > 0) { bus = trips(Kbus); } } } } } } else if (objClientAPIList[i].ProviderName == "RAJESH") { int r = i; objBusesSearchFilter = GetCityIDsOfProviders(objBusesSearchFilter, objClientAPIList[r], sourceId, destinationId, dateofjourney); if (Rsource_ids.ToString() != "" && RDestination_Ids.ToString() != "") { string[] Rsu = Rsource_ids.Split(','); string[] Rdu = RDestination_Ids.Split(','); string[] RSdr = Rsu.Distinct().ToArray(); string[] RDdr = Rdu.Distinct().ToArray(); foreach (string Rsr in RSdr) { foreach (string Rdr in RDdr) { RSID = Convert.ToInt32(Rsr); RDID = Convert.ToInt32(Rdr); RDate = objBusesSearchFilter.JourneyDate; RURL = objClientAPIList[r].APIURL; RConsumerKey = objClientAPIList[r].ConsumerKey; RCOnsumerSecretKey = objClientAPIList[r].ConsumerSecret; RProviderName = objClientAPIList[r].ProviderName; Kbus = Rajesh(RURL, RConsumerKey, RCOnsumerSecretKey, RProviderName, RSID, RDID, RDate); if (Kbus != null) { if (Kbus.Count() > 0) { bus = trips(Kbus); //HttpRuntime.Cache["bus"] = Tbus; } } } } } } else if (objClientAPIList[i].ProviderName == "KAVERI") { int k = i; objBusesSearchFilter = GetCityIDsOfProviders(objBusesSearchFilter, objClientAPIList[k], sourceId, destinationId, dateofjourney); if (Ksource_ids.ToString() != "" && KDestination_Ids.ToString() != "") { string[] Ksu = Ksource_ids.Split(','); string[] Kdu = KDestination_Ids.Split(','); string[] KSdr = Ksu.Distinct().ToArray(); string[] KDdr = Kdu.Distinct().ToArray(); foreach (string Ksr in KSdr) { foreach (string Kdr in KDdr) { KSID = Convert.ToInt32(Ksr); KDID = Convert.ToInt32(Kdr); KDate = objBusesSearchFilter.JourneyDate; KURL = objClientAPIList[i].APIURL; KConsumerKey = objClientAPIList[k].ConsumerKey; KCOnsumerSecretKey = objClientAPIList[k].ConsumerSecret; KProviderName = objClientAPIList[k].ProviderName; Kbus = KAVERI(KURL, KConsumerKey, KCOnsumerSecretKey, KProviderName, KSID, KDID, KDate); if (Kbus != null) { if (Kbus.Count() > 0) { bus = trips(Kbus); //HttpRuntime.Cache["Kbus"] = Kbus; } } } } } } //easy bus 17-05-2013 else if (objClientAPIList[i].ProviderName == "EASYBUS") { int E = i; objBusesSearchFilter = GetCityIDsOfProviders(objBusesSearchFilter, objClientAPIList[E], sourceId, destinationId, dateofjourney); if (Esource_ids.ToString() != "" && EDestination_Ids.ToString() != "") { string[] Esu = Esource_ids.Split(','); string[] Edu = EDestination_Ids.Split(','); string[] ESdr = Esu.Distinct().ToArray(); string[] EDdr = Edu.Distinct().ToArray(); foreach (string Esr in ESdr) { foreach (string Edr in EDdr) { ESID = Convert.ToInt32(Esr); EDID = Convert.ToInt32(Edr); EDate = dateofjourney; EURL = objClientAPIList[E].APIURL; EConsumerKey = objClientAPIList[E].ConsumerKey; ECOnsumerSecretKey = objClientAPIList[E].ConsumerSecret; EProviderName = objClientAPIList[E].ProviderName; Kbus = EASY(EURL, EConsumerKey, ECOnsumerSecretKey, EProviderName, ESID, EDID, EDate); if (Kbus != null) { if (Kbus.Count() > 0) { bus = trips(Kbus); } } } } } } }); // threat initialisation ends if (c == true) { thread[i].Start(); thread[i].Join(500); if (i == thread.Count() - 1) { i = thread.Count() - 1; break; } } } } } if (resultSetIndex != 2) { Found: int j = 0; foreach (var thd in thread) { if (thd.IsAlive) { thd.Join(1000); b = false; } else { j++; } if (j == threadcount) { b = true; i = 0; break; } } if (c == true) { c = false; } if (b == false) { goto Found; } else { b = false; //check if resultset index exceeds accessible providers list call the requested api if (resultSetIndex > 0 && resultSetIndex <= objClientAPIList.Count) { try { // objBusesAvailabilityResponse.availableTrips = GetAvailableTripsByProviderName(objClientAPIList[i], objBusesSearchFilter); objBusesAvailabilityResponse.responseStatus = HttpStatusCode.OK; } catch (Exception ex) { //return the exception objBusesAvailabilityResponse.availableTrips = null; objBusesAvailabilityResponse.responseStatus = HttpStatusCode.BadRequest; objBusesAvailabilityResponse.message = ex.Message; } if (objBusesAvailabilityResponse.providersCount == 10) { objBusesAvailabilityResponse.providersCount = 0; } else { objBusesAvailabilityResponse.providersCount = 0; // objBusesAvailabilityResponse.providersCount = objClientAPIList.Count - resultSetIndex; } } else { objBusesAvailabilityResponse.providersCount = 0; objBusesAvailabilityResponse.responseStatus = HttpStatusCode.BadRequest; } } } if (HttpContext.Current.Session["AvailResponse"] == null) { objBusesAvailabilityResponse.availableTrips = bus; HttpContext.Current.Session["AvailResponse"] = objBusesAvailabilityResponse; HttpRuntime.Cache["bus"] = ""; } else { bump: if (HttpRuntime.Cache["bus"].ToString() != "") { Tbus = (AvailableTrips)HttpRuntime.Cache["bus"]; if (Tbus.Count() > 0) { BusesAvailabilityResponse busback = new BusesAvailabilityResponse(); Tbus = (AvailableTrips)HttpRuntime.Cache["bus"]; busback = (BusesAvailabilityResponse)HttpContext.Current.Session["AvailResponse"]; bus = trips((AvailableTrips)busback.availableTrips); bus = trips(Tbus); busback.availableTrips = bus; busback.responseStatus = HttpStatusCode.OK; busback.providersCount = 0; HttpContext.Current.Session["AvailResponse"] = busback; objBusesAvailabilityResponse.availableTrips = Tbus; objBusesAvailabilityResponse.responseStatus = HttpStatusCode.OK; objBusesAvailabilityResponse.providersCount = 0; HttpRuntime.Cache["bus"] = ""; } } else { objClientAPIList = (ClientAPIList)HttpContext.Current.Cache["ClientAPI-" + ConsumerKey]; if (objClientAPIList[1].ProviderName == "TICKETGOOSE") { goto bump; } else { } } } return JsonConvert.SerializeObject(objBusesAvailabilityResponse); } catch (Exception ex) { throw ex; } }