コード例 #1
0
        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;
            }
        }
コード例 #2
0
 private AvailableTrips SVR(string SVRAPIURL, string SVRConsumerKey, string SVRConsumerSecret, string SVRProviderName, int SVRsourceid, int SVRdestinationid, string SVRdate)
 {
     AvailableTrips objAvailableTrips = new AvailableTrips();
     List<object> objlist = new List<object>();
     AbhibusAPI clsAbhibusAPI = new AbhibusAPI();
     objAvailableTrips = clsAbhibusAPI.getBusAvailability(SVRsourceid
                         , SVRdestinationid
                         , SVRdate
                         , 6
                         , "0"
                         , SVRAPIURL
                         , SVRConsumerKey
                         , SVRProviderName
                         );
     return objAvailableTrips;
 }
コード例 #3
0
        private AvailableTrips Ticketgoose(string TAPIURL, string TConsumerKey, string TConsumerSecret, int TPID, int Tsourceid, int Tdestinationid, string Tdate)
        {
            BusesAvailabilityResponse objBusesAvailabilityResponse = new BusesAvailabilityResponse();
            BusesSearchFilter objBusesSearchFilter = new BusesSearchFilter();
            AvailableTrips objAvailableTrips = new AvailableTrips();

            TicketGooseAPI clsTicketGooseAPI = new TicketGooseAPI();
            objAvailableTrips = clsTicketGooseAPI.getTripListV2(Tsourceid
                                , Tdestinationid
                                , Tdate
                                , TAPIURL
                                , TConsumerKey
                                , TConsumerSecret, TPID);

            return objAvailableTrips;
        }
コード例 #4
0
 private AvailableTrips MORNINGSTAR(string MAPIURL, string MConsumerKey, string MConsumerSecret, int MRPID, string MpName, int Msourceid, int Mdestinationid, string Mdate)
 {
     AvailableTrips objAvailableTrips = new AvailableTrips();
     BitlaAPI clsBitlaAPI = new BitlaAPI();
     objAvailableTrips = clsBitlaAPI.MRgetAvailableRoutes(Msourceid
                         , Mdestinationid
                         , Mdate
                         , MAPIURL
                         , MConsumerKey, MRPID, MpName);
     return objAvailableTrips;
 }
コード例 #5
0
        private AvailableTrips Rajesh(string RAJESHAPIURL, string RAJESHConsumerKey, string RAJESHConsumerSecret, string RAJESHProviderName, int RAJESHsourceid, int RAJESHdestinationid, string RAJESHdate)
        {
            AvailableTrips objAvailableTrips = new AvailableTrips();
            List<object> objlist = new List<object>();

            AbhibusAPI clsAbhibusAPI = new AbhibusAPI();
            objAvailableTrips = clsAbhibusAPI.getBusAvailability(RAJESHsourceid
                                , RAJESHdestinationid
                                , RAJESHdate
                                , 6
                                , "0"
                                , RAJESHAPIURL
                                , RAJESHConsumerKey
                                , RAJESHProviderName);

            return objAvailableTrips;
        }
コード例 #6
0
        public AvailableTrips getAvailableTrips(int sourceId, int destinationId, String dateofjourney, String URL, String ConsumerKey, String ConsumerSecret)
        {
            dateofjourney = dateofjourney.Split('-')[2] + "-" + dateofjourney.Split('-')[1] + "-" + dateofjourney.Split('-')[0];
            try
            {
                String strResponse = objService.getAvailableTrips(sourceId.ToString(), destinationId.ToString(), dateofjourney, URL, ConsumerKey, ConsumerSecret);
                DataSet ds = convertJsonStringToDataSet(strResponse);

                //Check if response is valid else return error message
                if (ds == null)
                {
                    throw new Exception(strResponse);
                }
                AvailableTrips objAvailableTrips = null;

                if (ds != null && ds.Tables.Count > 0 && ds.Tables["availableTrips"].Rows.Count > 0)
                {
                    objAvailableTrips = new AvailableTrips();
                    #region Loop each trip and add trip details to availabletrips

                    foreach (DataRow item in ds.Tables["availableTrips"].Rows)
                    {
                        DTO.TripDetails objTripDetails = new DTO.TripDetails();
                        objTripDetails.boardingTimes = new BoardingDroppingPoints();
                        objTripDetails.droppingTimes = new BoardingDroppingPoints();

                        objTripDetails.providerName = "REDBUS";
                        objTripDetails.availableSeats = item["availableSeats"].ToString();
                        objTripDetails.busType = item["busType"].ToString();
                        objTripDetails.cancellationPolicy = item["cancellationPolicy"].ToString();
                        objTripDetails.departureTime = Time(item["departureTime"].ToString());

                        #region Boarding & Dropping Points

                        //boarding points
                        DataTable dtBP = ds.Tables["boardingTimes"].Clone();
                        DataRow[] drBPArray = ds.Tables["boardingTimes"].Select("availableTrips_Id = " + item["availableTrips_Id"].ToString());
                        foreach (DataRow drow in drBPArray)
                        {
                            String strBP = "";// objService.getBoardingPoint(drow["bpId"].ToString(), URL, ConsumerKey, ConsumerSecret);
                            BoardingDroppingDetails bp = new BoardingDroppingDetails(drow["bpId"].ToString(), drow["location"].ToString(), Time(drow["time"].ToString()));
                            if (strBP != String.Empty)
                            {
                                bp.address = (String)JObject.Parse(strBP)["address"];
                                bp.landmark = (String)JObject.Parse(strBP)["landmark"];
                                bp.name = (String)JObject.Parse(strBP)["name"];
                            }
                            objTripDetails.boardingTimes.Add(bp);
                        }
                        //dropping points
                        DataTable dtDP = ds.Tables["droppingTimes"].Clone();
                        DataRow[] drDPArray = ds.Tables["droppingTimes"].Select("availableTrips_Id = " + item["availableTrips_Id"].ToString());
                        foreach (DataRow drow in drDPArray)
                        {
                            String strDP = "";// objService.getBoardingPoint(drow["bpId"].ToString(), URL, ConsumerKey, ConsumerSecret);
                            BoardingDroppingDetails dp = new BoardingDroppingDetails(drow["bpId"].ToString(), drow["location"].ToString(), Time(drow["time"].ToString()));
                            if (strDP != String.Empty)
                            {
                                dp.address = (String)JObject.Parse(strDP)["address"];
                                dp.landmark = (String)JObject.Parse(strDP)["landmark"];
                                dp.name = (String)JObject.Parse(strDP)["name"];
                            }
                            objTripDetails.boardingTimes.Add(dp);
                        }

                        #endregion

                        //check if boarding and dropping times are same. If so, show '-'
                        if (item["arrivalTime"].ToString() != item["departureTime"].ToString())
                        {
                            objTripDetails.arrivalTime = Time(item["arrivalTime"].ToString());
                            objTripDetails.duration = Duration(objTripDetails.departureTime, objTripDetails.arrivalTime);
                        }
                        else
                            objTripDetails.arrivalTime = objTripDetails.duration = "-";

                        if (ds.Tables["fares"] == null)
                            objTripDetails.fares = item["fares"].ToString();
                        else
                            objTripDetails.fares = ds.Tables["fares"].Rows[ds.Tables["availableTrips"].Rows.IndexOf(item)]["fares_text"].ToString();
                        objTripDetails.id = item["id"].ToString();
                        objTripDetails.partialCancellationAllowed = item["partialCancellationAllowed"].ToString();
                        objTripDetails.travels = item["travels"].ToString();

                        objTripDetails.sourceId = sourceId;
                        objTripDetails.destinationId = destinationId;

                        objAvailableTrips.Add(objTripDetails);
                    }
                    #endregion
                }
                return objAvailableTrips;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #7
0
 private AvailableTrips KAVERI(string KAVERIAPIURL, string KAVERIConsumerKey, string KAVERIConsumerSecret, string KAVERIProviderName, int KAVERIsourceid, int KAVERIdestinationid, string KAVERIdate)
 {
     AvailableTrips objAvailableTrips = new AvailableTrips();
     AbhibusAPI clsAbhibusAPI = new AbhibusAPI();
     objAvailableTrips = clsAbhibusAPI.getBusAvailability(KAVERIsourceid
                         , KAVERIdestinationid
                         , KAVERIdate
                         , 6
                         , "0"
                         , KAVERIAPIURL
                         , KAVERIConsumerKey
                         , KAVERIProviderName);
     return objAvailableTrips;
 }
コード例 #8
0
 //easy bus 17-05-2013
 private AvailableTrips EASY(string EASYAPIURL, string EASYConsumerKey, string EASYConsumerSecret, string EASYProviderName, int EASYsourceid, int EASYdestinationid, string EASYdate)
 {
     AvailableTrips objAvailableTrips = new AvailableTrips();
     EasybusAPI clsEasyBusAPI = new EasybusAPI();
     objAvailableTrips = clsEasyBusAPI.getAvailableServices(EASYsourceid
                         , EASYdestinationid
                         , EASYdate
                         , EASYAPIURL
                         , EASYConsumerKey
                         , EASYProviderName);
     return objAvailableTrips;
 }
コード例 #9
0
        /// <summary>
        /// Method to get available trips for given provider
        /// </summary>
        /// <param name="ProviderName"></param>
        /// <param name="objClientAPIDetails"></param>
        /// <returns>Returns JSON string with list of available trips</returns>
        private AvailableTrips GetAvailableTripsByProviderName(ClientAPIDetails objClientAPIDetails, BusesSearchFilter objBusesSearchFilter)
        {
            AvailableTrips objAvailableTrips = new AvailableTrips();
            List<object> objlist = new List<object>();
            switch (objClientAPIDetails.ProviderName)
            {

                case "ABHIBUS":
                case "SVR":
                case "KALLADA":
                case "KAVERI":
                case "RAJESH":
                case "SAIANJANA":
                    AbhibusAPI clsAbhibusAPI = new AbhibusAPI();
                    objAvailableTrips = clsAbhibusAPI.getBusAvailability(objBusesSearchFilter.SourceID
                                        , objBusesSearchFilter.DestinationID
                                        , objBusesSearchFilter.JourneyDate
                                        , 6
                                        , "0"
                                        , objClientAPIDetails.APIURL
                                        , objClientAPIDetails.ConsumerKey
                                        , objClientAPIDetails.ProviderName);
                    break;
                case "BITLA":
                case "MORNINGSTAR":
                    BitlaAPI clsBitlaAPI = new BitlaAPI();
                    objAvailableTrips = clsBitlaAPI.getAvailableRoutes(objBusesSearchFilter.SourceID
                                        , objBusesSearchFilter.DestinationID
                                        , objBusesSearchFilter.JourneyDate
                                        , objClientAPIDetails.APIURL
                                        , objClientAPIDetails.ConsumerKey, objClientAPIDetails.ProviderID);
                    break;
                case "TICKETGOOSE":
                    TicketGooseAPI clsTicketGooseAPI = new TicketGooseAPI();
                    objAvailableTrips = clsTicketGooseAPI.getTripListV2(objBusesSearchFilter.SourceID
                                        , objBusesSearchFilter.DestinationID
                                        , objBusesSearchFilter.JourneyDate
                                        , objClientAPIDetails.APIURL
                                        , objClientAPIDetails.ConsumerKey
                                        , objClientAPIDetails.ConsumerSecret, objClientAPIDetails.ProviderID);
                    break;
                //easybus
                case "EASYBUS":
                    EasybusAPI clsEasyBusAPI = new EasybusAPI();

                    break;
                default:
                    break;

            }

            return objAvailableTrips;
        }
コード例 #10
0
        public AvailableTrips trips(AvailableTrips objavailtrips)
        {
            BusesAvailabilityResponse objBusesAvailabilityResponse = new BusesAvailabilityResponse();
            foreach (var t in objavailtrips)
            {
                AvailableTrips1 trip = new AvailableTrips1();
                trip.arrivalTime = t.arrivalTime;
                trip.availableSeats = t.availableSeats;
                trip.boardingTimes = t.boardingTimes;
                trip.busType = t.busType;
                trip.cancellationPolicy = t.cancellationPolicy;
                trip.departureTime = t.departureTime;
                trip.destinationId = t.destinationId;
                trip.droppingTimes = t.droppingTimes;
                trip.duration = t.duration;
                trip.fares = t.fares;
                trip.id = t.id;
                trip.SeatLayoutId = t.SeatLayoutId;
                trip.partialCancellationAllowed = t.partialCancellationAllowed;
                trip.providerName = t.providerName;
                trip.sourceId = t.sourceId;
                trip.travels = t.travels;
                tripdetails.Add(trip);
            }

            return tripdetails;
        }
コード例 #11
0
 private AvailableTrips BITLA(string BAPIURL, string BConsumerKey, string BConsumerSecret, int BPID, string BPName, int Bsourceid, int Bdestinationid, string Bdate)
 {
     AvailableTrips objAvailableTrips = new AvailableTrips();
     BitlaAPI clsBitlaAPI = new BitlaAPI();
     objAvailableTrips = clsBitlaAPI.getAvailableRoutes(Convert.ToInt32(Bsourceid), Convert.ToInt32(Bdestinationid), Bdate, BAPIURL, BConsumerKey, BPID);
     return objAvailableTrips;
 }
コード例 #12
0
        public AvailableTrips getAvailableRoutes(int sourceId, int destinationId, String dateOfJourney, String URL, String ConsumerKey, int ProviderID)
        {
            try
            {
                dateOfJourney = dateOfJourney.Split('-')[2] + "-" + dateOfJourney.Split('-')[1] + "-" + dateOfJourney.Split('-')[0];
                if (File.Exists(Path.Combine(HttpRuntime.AppDomainAppPath, "Routes\\" + dateOfJourney + ".xml")))
                {
                    DataSet ds = new DataSet();
                    ds.ReadXml(Path.Combine(HttpRuntime.AppDomainAppPath, "Routes\\" + dateOfJourney + ".xml"));
                    if (ds != null && ds.Tables.Count > 0 && ds.Tables["route"].Rows.Count > 0)
                    {
                        objAvailableTrips = new AvailableTrips();
                        DataView dv = ds.Tables["route"].DefaultView;
                        dv.RowFilter = "origin_id=" + sourceId + "and destination_id=" + destinationId;
                        foreach (DataRowView item in dv)
                        {
                            //add the routes that match with given source and destinations
                            if (int.Parse(item["origin_id"].ToString()) == sourceId && int.Parse(item["destination_id"].ToString()) == destinationId)
                            {
                                LJ.CLB.DTO.TripDetails objTripDetails = new DTO.TripDetails();
                                objTripDetails.providerName = "BITLA";
                                objTripDetails.arrivalTime = CalculateArrivalTime(item["dep_time"].ToString(), item["duration"].ToString());
                                objTripDetails.availableSeats = item["available_seats"].ToString();
                                //boardingTimes are fetched in seat layout
                                objTripDetails.busType = item["bus_type"].ToString();
                                //cancellationPolicy  is not valid for bitla
                                objTripDetails.cancellationPolicy = String.Empty;
                                objTripDetails.departureTime = item["dep_time"].ToString();
                                //droppingTimes are fetched in seat layout
                                objTripDetails.duration = item["duration"].ToString();
                                objTripDetails.fares = item["fare_str"].ToString();
                                objTripDetails.id = item["reservation_id"].ToString();
                                objTripDetails.partialCancellationAllowed = item["is_cancellable"].ToString();
                                objTripDetails.travels = item["travels"].ToString();
                                objTripDetails.sourceId = int.Parse(item["origin_id"].ToString());
                                objTripDetails.destinationId = int.Parse(item["destination_id"].ToString());
                                trip.Add(objTripDetails);
                            }
                        }

                    }
                    //ignore operator list
                    clsMasters obj = new clsMasters();
                    DataSet dsignore = obj.GetIgnoreList(ProviderID);
                    if (dsignore != null)
                    {
                        if (dsignore.Tables[0].Rows.Count > 0)
                        {
                            foreach (DataRow row in dsignore.Tables[0].Rows)
                            {
                                trip = trip.Where(e => e.travels != row[3].ToString()).ToList();
                            }

                        }

                    }
                    foreach (var bt in trip)
                    {
                        LJ.CLB.DTO.TripDetails objTripDetails = new DTO.TripDetails();
                        objTripDetails.providerName = "BITLA";
                        objTripDetails.arrivalTime = CalculateArrivalTime(bt.departureTime.ToString(), bt.duration.ToString());
                        objTripDetails.availableSeats = bt.availableSeats.ToString();
                        //boardingTimes are fetched in seat layout
                        objTripDetails.busType = bt.busType.ToString();
                        //cancellationPolicy  is not valid for bitla
                        objTripDetails.cancellationPolicy = String.Empty;
                        objTripDetails.departureTime = bt.departureTime.ToString();
                        //droppingTimes are fetched in seat layout
                        objTripDetails.duration = bt.duration.ToString() + " hrs";
                        objTripDetails.fares = bt.fares.ToString();
                        objTripDetails.id = bt.id.ToString();
                        objTripDetails.partialCancellationAllowed = bt.partialCancellationAllowed.ToString();
                        objTripDetails.travels = bt.travels.ToString();
                        objTripDetails.sourceId = int.Parse(bt.sourceId.ToString());
                        objTripDetails.destinationId = int.Parse(bt.destinationId.ToString());
                        objAvailableTrips.Add(objTripDetails);
                    }
                }

                return objAvailableTrips;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #13
0
        public AvailableTrips getTripListV2(int sourceId, int destinationId, String dateOfJourney, String URL, String ConsumerKey, String ConsumerSecret, int ProviderID)
        {
            try
            {

                //return "";
                //Convert dd-mm-yyyy format to API compatible format dd/mm/yyyy
                dateOfJourney = dateOfJourney.Replace('-', '/');
                client = new TGTravelServiceClient("TGSWS", URL);
                TripWithArrival response = client.getTripListV2(ConsumerKey, ConsumerSecret, sourceId.ToString(), destinationId.ToString(), dateOfJourney);
                AvailableTrips objAvailableTrips = null;
                if (response != null && response.tripList != null && response.tripList.Length > 0)
                {
                    objAvailableTrips = new AvailableTrips();
                    #region Loop each trip and add trip details to availabletrips

                    //ignore operator list

                    List<object> oo = new List<object>();
                    clsMasters obj = new clsMasters();
                    DataSet ds = obj.GetIgnoreList(ProviderID);
                    if (ds != null)
                    {
                        if (ds.Tables[0].Rows.Count > 0)
                        {
                            AvailableFlights = response.tripList.ToList();
                            foreach (DataRow row in ds.Tables[0].Rows)
                            {

                                AvailableFlights = AvailableFlights.Where(e => e.provider != row[3].ToString()).ToList();

                            }
                        }
                        else
                        {
                            AvailableFlights = response.tripList.ToList();
                        }
                    }

                    //end ignore operator list
                    // List<TripWithArrivalDTO> AvailableFlights = response.tripList.Where(e => e.provider.Except(studentQuery).ToList();

                    foreach (TripWithArrivalDTO item in AvailableFlights)
                    {
                        //if (item.provider == "SVR Tours &  Travels")
                        //{
                        //}

                        LJ.CLB.DTO.TripDetails objTripDetails = new DTO.TripDetails();
                        objTripDetails.providerName = "TICKETGOOSE";
                        //remove seconds and make it to 12hr format
                        if (item.arrivalTime != null)
                        {
                            if (int.Parse(item.arrivalTime.Split(':')[0]) < 12) objTripDetails.arrivalTime = item.arrivalTime.Split(':')[0] + ':' + item.arrivalTime.Split(':')[1] + " AM";
                            else objTripDetails.arrivalTime = (int.Parse(item.arrivalTime.Split(':')[0]) - 12).ToString() + ':' + item.arrivalTime.Split(':')[1] + " PM";
                        }
                        else
                            objTripDetails.arrivalTime = "-";

                        objTripDetails.availableSeats = item.availableSeats;

                        //objTripDetails.boardingTimes = JsonConvert.SerializeObject(item.pickUpPointList);
                        objTripDetails.busType = item.type;
                        //cancellationPolicy  is not valid for ticketgoose
                        objTripDetails.cancellationPolicy = String.Empty;

                        //remove seconds and make it to 12hr format
                        if (item.departureTime != null)
                        {
                            if (int.Parse(item.departureTime.Split(':')[0]) < 12) objTripDetails.departureTime = item.departureTime.Split(':')[0] + ':' + item.departureTime.Split(':')[1] + " AM";
                            else objTripDetails.departureTime = (int.Parse(item.departureTime.Split(':')[0]) - 12).ToString() + ':' + item.departureTime.Split(':')[1] + " PM";
                        }

                        //objTripDetails.droppingTimes = String.Empty;

                        if (item.departureTime != null && item.arrivalTime != null)
                            //objTripDetails.duration = Duration(objTripDetails.departureTime, objTripDetails.arrivalTime);
                            objTripDetails.duration = Duration(objTripDetails.departureTime, objTripDetails.arrivalTime);
                        if (objTripDetails.duration == null)
                        {
                            objTripDetails.duration = "-";
                        }
                        objTripDetails.fares = item.fare;
                        objTripDetails.id = item.scheduleId;
                        //partialCancellationAllowed is not valid for ticketkgoose
                        objTripDetails.partialCancellationAllowed = String.Empty;
                        objTripDetails.travels = item.provider;
                        objTripDetails.sourceId = sourceId;
                        objTripDetails.destinationId = destinationId;
                        objAvailableTrips.Add(objTripDetails);

                    }
                    #endregion
                }

                return objAvailableTrips;

            }
            catch (Exception ex)
            {
                return null;
            }
        }
コード例 #14
0
        public AvailableTrips getAvailableServices(int sourceId, int destinationId, String dateOfJourney,
             String URL, String ConsumerKey, string providername)
        {
            //Convert mm-dd-yyyy format to API compatible format dd-mm-yyyy
            dateOfJourney = dateOfJourney.Split('-')[1] + "/" + dateOfJourney.Split('-')[0] + "/" + dateOfJourney.Split('-')[2];
            try
            {
                requestBody = URL + "/server.aspx?Method=GetAvailableServices&TripType=" + 1 + "&SorceStationid=" + sourceId + "&DestinationStationid=" + destinationId + "&DateofJourney=" + dateOfJourney + "&DateOfReturn=" + dateOfJourney + "&Key=" + ConsumerKey;

                DataSet ds = convertXMLtoDataset(getJSONReponse(requestBody));
                DataTable dtBuses = new DataTable();
                dtBuses = ds.Tables[0];

                AvailableTrips objAvailableTrips = new AvailableTrips();

                if (dtBuses != null)
                {

                    //foreach (DataRow dtRow in dtBuses.Rows)

                    //{
                    if (dtBuses.TableName!="Respones"|| dtBuses.TableName=="Services")
                    {
                        for (int i = 0; i < dtBuses.Rows.Count; i++)
                        {
                            LJ.CLB.DTO.TripDetails objTripDetails = new DTO.TripDetails();
                            objTripDetails.providerName = providername;
                            objTripDetails.boardingTimes = null;//String.Empty;
                            objTripDetails.cancellationPolicy = String.Empty;
                            objTripDetails.droppingTimes = null;//String.Empty;
                            objTripDetails.sourceId = int.Parse(sourceId.ToString());
                            objTripDetails.destinationId = int.Parse(destinationId.ToString());
                            objTripDetails.partialCancellationAllowed = "false";

                            int Totalseats = Convert.ToInt32(dtBuses.Rows[i]["CAPACITY"].ToString());
                            int BookedSeats = Convert.ToInt32(dtBuses.Rows[i]["BOOKEDSEATS"].ToString());
                            int AvailableSeats = Totalseats - BookedSeats;
                            objTripDetails.id = dtBuses.Rows[i]["SERVICE_ID"].ToString();
                            objTripDetails.travels = dtBuses.Rows[i]["NOTES"].ToString();
                            objTripDetails.departureTime = dtBuses.Rows[i]["START_TIME"].ToString();
                            objTripDetails.arrivalTime = dtBuses.Rows[i]["HALT_TIME"].ToString();
                            objTripDetails.fares = dtBuses.Rows[i]["Fare"].ToString();
                            objTripDetails.availableSeats = AvailableSeats.ToString();
                            objTripDetails.busType = dtBuses.Rows[i]["BUS_TYPE"].ToString();
                            objTripDetails.SeatLayoutId = dtBuses.Rows[i]["LAYOUT_ID"].ToString();
                            objTripDetails.duration = Duration(objTripDetails.departureTime, objTripDetails.arrivalTime);
                            objAvailableTrips.Add(objTripDetails);
                        }
                    }
                    // }
                }
                return objAvailableTrips;

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #15
0
        public string GetAvailableTrips1(int sourceId, int destinationId, String dateofjourney, Int16 resultSetIndex, String ConsumerKey, String ConsumerSecret)
        {
            try
            {

                ClientAPIList objClientAPIList = new ClientAPIList();

                BusesAvailabilityResponse objBusesAvailabilityResponse = new BusesAvailabilityResponse();

                //Check if Cache already contains the Providers API List
                //Else get it from database
                // if (HttpContext.Current.Cache["ClientAPI-" + ConsumerKey] == null)
                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();
                    for (int i = 0; i < objClientAPIList.Count; i++)
                    {

                        objBusesSearchFilter = GetCityIDsOfProviders(objBusesSearchFilter, objClientAPIList[i], sourceId, destinationId, dateofjourney);
                        //check if resultset index exceeds accessible providers list call the requested api
                        if (resultSetIndex > 0 && resultSetIndex <= objClientAPIList.Count)
                        {
                            //Check if request has valid source and destination ids
                            if (objBusesSearchFilter.SourceID > 0 && objBusesSearchFilter.DestinationID > 0)
                            {
                                //check if valid available trips are fetched
                                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;
                                }
                            }
                            else
                            {
                                //objBusesAvailabilityResponse.availableTrips = "No results found.";
                                // objBusesAvailabilityResponse.responseStatus = HttpStatusCode.NoContent;
                                objBusesAvailabilityResponse.availableTrips = null;
                            }
                            objBusesAvailabilityResponse.providersCount = objClientAPIList.Count - resultSetIndex;
                        }
                        else
                        {
                            //objBusesAvailabilityResponse.availableTrips = "Invalid request. Please correct resultSetIndex value";
                            objBusesAvailabilityResponse.providersCount = 0;
                            objBusesAvailabilityResponse.responseStatus = HttpStatusCode.BadRequest;
                        }

                        if (objBusesAvailabilityResponse.availableTrips != null)
                        {
                            if (HttpContext.Current.Session["AvailResponse"] == null)
                            {
                                HttpContext.Current.Session["AvailResponse"] = objBusesAvailabilityResponse;
                                bus = trips(objBusesAvailabilityResponse.availableTrips);
                                //HttpContext.Current.Session["AvailResponseTrips"] = bus;
                                //bus = trips(bus);
                            }
                            else
                            {
                                //bus = trips((AvailableTrips)HttpContext.Current.Session["AvailResponseTrips"]);
                                bus = trips(objBusesAvailabilityResponse.availableTrips);
                            }
                        }
                    }
                    /*** Uncomment this if available trips of all providers should be fetched in one go ***/

                }
                else
                {

                    objBusesAvailabilityResponse.providersCount = 0;
                    objBusesAvailabilityResponse.responseStatus = HttpStatusCode.NoContent;
                }

                objBusesAvailabilityResponse.availableTrips = bus;
                HttpContext.Current.Session["AvailResponse"] = objBusesAvailabilityResponse;
                return JsonConvert.SerializeObject(objBusesAvailabilityResponse);

            }
            catch (Exception ex)
            {

                throw ex;
            }
        }
コード例 #16
0
        private AvailableTrips GETBITLROUTES(BusesSearchFilter objBusesSearchFilter, ClientAPIDetails objClientAPIDetails,
           int sourceId, int destinationId, String dateofjourney)
        {
            ClsBAL bal = new ClsBAL();
            bal.ProviderID = objClientAPIDetails.ProviderID;
            bal.sourceId = sourceId;
            bal.destionationId = destinationId;
            DataSet dsProviders = bal.GetAPIID();

            //DataSet dsProviders = ExecuteDataSet("SELECT " + objClientAPIDetails.ProviderName + " FROM dbo.tbl_Sources WHERE Source_ID = '" + sourceId + "' " +
            //                                       "SELECT " + objClientAPIDetails.ProviderName + " FROM dbo.tbl_Sources WHERE Source_ID = '" + destinationId + "'");

            if (dsProviders.Tables[0].Rows.Count > 0 && dsProviders.Tables[1].Rows.Count > 0)
            {
                if (objClientAPIDetails.ProviderName == "BITLA")
                {
                    for (int k = 0; k < dsProviders.Tables.Count; k++)
                    {

                        BSID = dsProviders.Tables[0].Rows[k][0].ToString() == "" ? 0 : int.Parse(dsProviders.Tables[0].Rows[k][0].ToString());
                        BDID = dsProviders.Tables[1].Rows[k][0].ToString() == "" ? 0 : Convert.ToInt32(dsProviders.Tables[1].Rows[k][0]);
                        if (BSID > 0 && BDID > 0)
                        {
                            BDate = dateofjourney;
                            BURL = objClientAPIDetails.APIURL + "/";
                            BConsumerKey = objClientAPIDetails.ConsumerKey;
                            BCOnsumerSecretKey = objClientAPIDetails.ConsumerSecret;
                            BPID = objClientAPIDetails.ProviderID;
                            BProviderName = objClientAPIDetails.ProviderName;
                            Tbus = BITLA(BURL, BConsumerKey, BCOnsumerSecretKey, BPID, BProviderName, BSID, BDID, BDate);
                            bus = trips(Tbus);
                        }
                    }
                }
            }

            dsProviders.Dispose();
            return bus;
        }
コード例 #17
0
        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;
            }
        }
コード例 #18
0
        /// <summary>
        /// Method for getting all the available buses based on source, destination and date of journey
        /// </summary>
        /// <param name="sourceId"></param>
        /// <param name="destinationId"></param>
        /// <param name="dateOfJourney"></param>
        /// <param name="seatCount"></param>
        /// <param name="seatType">seat/sleeper</param>
        /// <param name="URL"></param>
        /// <param name="ConsumerKey"></param>
        /// <returns></returns>
        public AvailableTrips getBusAvailability(int sourceId, int destinationId, String dateOfJourney, Int16 seatCount,
             String seatType, String URL, String ConsumerKey, string providername)
        {
            //Convert dd-mm-yyyy format to API compatible format yyyy-mm-dd
            dateOfJourney = dateOfJourney.Split('-')[2] + "-" + dateOfJourney.Split('-')[1] + "-" + dateOfJourney.Split('-')[0];
            try
            {
                requestBody = "<?xml version='1.0'?><methodCall>" +
                "<methodName>select.bustojurney</methodName>" +
                "<params><param><value><struct>" +
                "<member><name>jdate</name><value><string>" + dateOfJourney + "</string></value></member>" +
                 "<member><name>sourceid</name><value><string>" + sourceId + "</string></value></member>" +
                  "<member><name>destinationid</name><value><string>" + destinationId + "</string></value></member>" +
                   "<member><name>psgr_count</name><value><string>" + seatCount + "</string></value></member>" +
                   "<member><name>seat_sleeper</name><value><string>" + seatType + "</string></value></member>" +
                "</struct></value></param></params></methodCall>";

                xmlNodes = getXmlNodeList(requestBody, URL, ConsumerKey);

                AvailableTrips objAvailableTrips = new AvailableTrips();

                if (xmlNodes != null)
                {
                    foreach (XmlNode xNode in xmlNodes)
                    {
                        LJ.CLB.DTO.TripDetails objTripDetails = new DTO.TripDetails();

                        objTripDetails.providerName = providername;
                        objTripDetails.boardingTimes = null;//String.Empty;
                        objTripDetails.cancellationPolicy = String.Empty;
                        objTripDetails.droppingTimes = null;//String.Empty;
                        objTripDetails.sourceId = int.Parse(sourceId.ToString());
                        objTripDetails.destinationId = int.Parse(destinationId.ToString());
                        objTripDetails.partialCancellationAllowed = "false";

                        XmlNodeList nodeNameList = xNode.SelectNodes("member/name");
                        XmlNodeList nodeValueList = xNode.SelectNodes("member/value");

                        for (int i = 0; i < nodeNameList.Count; i++)
                        {
                            switch (nodeNameList.Item(i).InnerText.ToLower())
                            {
                                case "service_id":
                                    objTripDetails.id = nodeValueList.Item(i).InnerText;
                                    break;
                                case "traveler_agent":
                                    if (nodeValueList.Item(i).InnerText == "")
                                    {
                                        objTripDetails.travels = "Kallada Tours & Travels";
                                    }
                                    else
                                    {
                                        objTripDetails.travels = nodeValueList.Item(i).InnerText;
                                    }
                                    break;
                                case "departure_time":
                                    objTripDetails.departureTime = nodeValueList.Item(i).InnerText;
                                    break;
                                case "arrival_time":
                                    objTripDetails.arrivalTime = nodeValueList.Item(i).InnerText;
                                    break;
                                case "seat_fare_with_taxes":
                                case "seat_fare":
                                    objTripDetails.fares = nodeValueList.Item(i).InnerText;
                                    break;
                                case "totalavailableseats":
                                    objTripDetails.availableSeats = nodeValueList.Item(i).InnerText;
                                    break;
                                case "remaining_seats":
                                    objTripDetails.availableSeats = nodeValueList.Item(i).InnerText;
                                    break;
                                case "service_type":
                                    objTripDetails.busType = nodeValueList.Item(i).InnerText;
                                    break;
                                case "boardingpoints":
                                    #region Boarding Points
                                    string strBP = "";
                                    XmlDocument xmlDocBP = new XmlDocument();
                                    xmlDocBP.LoadXml(nodeValueList.Item(i).InnerXml);
                                    XmlNodeList nodesBP = xmlDocBP.GetElementsByTagName("array");
                                    foreach (XmlNode item in nodesBP)
                                    {
                                        foreach (XmlNode item1 in item.SelectNodes("data/value"))
                                        {
                                            strBP = (strBP == "") ? item1.InnerText : strBP + "%&&&%" + item1.InnerText;
                                        }
                                    }
                                    //objTripDetails.boardingTimes = strBP;
                                    objTripDetails.boardingTimes = Points(strBP, objTripDetails.travels);
                                    #endregion
                                    break;
                                case "droppingpoints":
                                    #region Dropping Points
                                    string strDP = "";//nodeValueList.Item(i).InnerXml;
                                    XmlDocument xmlDocDP = new XmlDocument();
                                    xmlDocDP.LoadXml(nodeValueList.Item(i).InnerXml);
                                    XmlNodeList nodesDP = xmlDocDP.GetElementsByTagName("array");
                                    foreach (XmlNode item in nodesDP)
                                    {
                                        foreach (XmlNode item1 in item.SelectNodes("data/value"))
                                        {
                                            strDP = (strDP == "") ? item1.InnerText : strDP + ";" + item1.InnerText;
                                        }
                                    }
                                    objTripDetails.droppingTimes = Points(strDP, objTripDetails.travels);

                                    #endregion
                                    break;
                                default:
                                    break;
                            }
                        }
                        objTripDetails.duration = Duration(objTripDetails.departureTime, objTripDetails.arrivalTime);
                        objAvailableTrips.Add(objTripDetails);
                    }
                }
                return objAvailableTrips;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }