public DataTable GetTripList(string FromStationId, string ToStationId, string TravelDate)
        {
            try
            {
                DataTable dataTable = new DataTable();
                TGTravelServiceClient o = new TGTravelServiceClient();
                o.Open();
                TripWithArrival TripList = o.getTripListV2(UserId, Password, FromStationId, ToStationId, TravelDate);
                if (TripList.status.message.ToString() == "success")
                {
                    Array ObjArray = TripList.tripList;
                    dataTable.Columns.Add("arrivalTime");
                    dataTable.Columns.Add("availableSeats");
                    dataTable.Columns.Add("departureTime");
                    dataTable.Columns.Add("fare");
                    dataTable.Columns.Add("provider");
                    dataTable.Columns.Add("scheduleId");
                    dataTable.Columns.Add("ticketType");
                    dataTable.Columns.Add("type");
                    dataTable.Columns.Add("pickUpPoint");
                    dataTable.Columns.Add("sequence");

                    foreach (TripWithArrivalDTO Trip1 in ObjArray)
                    {
                        //foreach (PickUpPointDTO PickupPoint in Trip1.pickUpPointList)
                        {
                            DataRow dr = dataTable.NewRow();
                            dr["arrivalTime"] = Trip1.arrivalTime;
                            dr["availableSeats"] = Trip1.availableSeats;
                            dr["departureTime"] = Trip1.departureTime;
                            dr["fare"] = Trip1.fare;
                            dr["provider"] = Trip1.provider;
                            dr["scheduleId"] = Trip1.scheduleId;
                            dr["ticketType"] = Trip1.ticketType;
                            dr["type"] = Trip1.type;
                            dr["pickUpPoint"] = "";//PickupPoint.description;
                            dr["sequence"] = "";//PickupPoint.sequence;
                            DataRow[] ddd = dataTable.Select("scheduleId = '" + Trip1.scheduleId + "'");
                            if (ddd.Length == 0)
                            {
                                dataTable.Rows.Add(dr);
                            }
                        }
                    }
                }
                o.Close();
                return dataTable;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        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;
            }
        }