private IList<Seat> GetSeatInformation(string strContent, VeryTripRegexExpression veryTripRegex) { IList<Seat> seatList = new List<Seat>(); Seat seat; IList<string> secondContentList = RegexOperation.GetValuesByRegex(veryTripRegex.GetSingleRowSecondRegex(), strContent); if (secondContentList == null) { return seatList; } string strPrice = string.Empty; foreach (string strResult in secondContentList) { seat = new Seat(); seat.Cabin = RegexOperation.GetValueByRegex(veryTripRegex.GetCabinRegex(), strResult); strPrice = RegexOperation.GetValueByRegex(veryTripRegex.GetTicketPriceRegex(), strResult); if (!string.IsNullOrEmpty(strPrice)) seat.Price = double.Parse(strPrice); seat.Count = 9; seat.SubCanbin = RegexOperation.GetValueByRegex(veryTripRegex.GetSubCanbin(), strResult); seatList.Add(seat); } return seatList; }
private IList<RouteInformation> CombineAllRoute(string strContent, VeryTripRegexExpression veryRegexInstance) { string strNomalRouteContent = GetNomalFragment(strContent, veryRegexInstance); List<RouteInformation> routeInformationList = GetCurrentPageRoute(strNomalRouteContent, veryRegexInstance); IList<string> pageUrlList = GetPageUrl(strContent, veryRegexInstance); foreach (string strPageUrl in pageUrlList) { strNomalRouteContent = GetNomalFragment(GetHtmlSource(strPageUrl), veryRegexInstance); routeInformationList.AddRange(GetCurrentPageRoute(strNomalRouteContent, veryRegexInstance)); } return routeInformationList; }
private RouteInformation GetRouteInformation(string strContent, VeryTripRegexExpression veryTripRegex) { if (string.IsNullOrEmpty(strContent)) return null; string strFirstContent = RegexOperation.GetValueByRegex(veryTripRegex.GetSingleRowFirstRegex(), strContent); if (string.IsNullOrEmpty(strFirstContent)) return null; RouteInformation routeInformation = new RouteInformation(); routeInformation.OriginalAirport = RegexOperation.GetValueByRegex(veryTripRegex.GetDepartureCityRegex(), strFirstContent); routeInformation.DestinationAirport = RegexOperation.GetValueByRegex(veryTripRegex.GetArrivalCityRegex(), strFirstContent); if (GetFlightDate().HasValue) { string strStartTime = RegexOperation.GetValueByRegex(veryTripRegex.GetDepartureTimeRegex(), strFirstContent); string strEndTime = RegexOperation.GetValueByRegex(veryTripRegex.GetArrivalTimeRegex(), strFirstContent); routeInformation.DepartureTime = DateTime.Parse(GetFlightDate().Value.ToString("yyyy-MM-dd") + " " + strStartTime + ":00"); routeInformation.ArriveTime = DateTime.Parse(GetFlightDate().Value.ToString("yyyy-MM-dd") + " " + strEndTime + ":00"); routeInformation.AirDate = GetFlightDate().Value; } //routeInformation.Discount = double.Parse(strDiscount); //string strTicketPrice = RegexOperation.GetValueByRegex(veryTripRegex.GetTicketPriceRegex(), strTbodyData); //if (!string.IsNullOrEmpty(strTicketPrice)) // routeInformation.TicketPrice = double.Parse(strTicketPrice); //routeInformation.Meal = RegexOperation.GetValueByRegex(veryTripRegex.GetMealRegex(), strTbodyData); //routeInformation.AirLine = RegexOperation.GetValueByRegex(veryTripRegex.GetAirLineRegex(), strTbodyData); //routeInformation.ChangeRule = RegexOperation.GetValueByRegex(veryTripRegex.GetChangeRuleRegex(), strContent); //routeInformation.FlightInterval = RegexOperation.GetValueByRegex(veryTripRegex.GetFlightIntervalRegex(), strContent); routeInformation.FlightNO = RegexOperation.GetValueByRegex(veryTripRegex.GetFlightNORegex(), strFirstContent); routeInformation.AirLine = routeInformation.FlightNO.Substring(0, 2); routeInformation.FlightType = RegexOperation.GetValueByRegex(veryTripRegex.GetFlightTypeRegex(), strFirstContent); string strStops = RegexOperation.GetValueByRegex(veryTripRegex.GetStops(), strFirstContent); if (!string.IsNullOrEmpty(strStops)) routeInformation.Stops = int.Parse(strStops); //routeInformation.Cabin = RegexOperation.GetValueByRegex(veryTripRegex.GetCabinRegex(), strContent); string strYprice = RegexOperation.GetValueByRegex(veryTripRegex.GetYpriceRegex(), strFirstContent); if (!string.IsNullOrEmpty(strYprice)) routeInformation.Yprice = double.Parse(strYprice); //string strAirportFuelTax = RegexOperation.GetValueByRegex(veryTripRegex.GetAirportFuelRegex(), strContent); //if (!string.IsNullOrEmpty(strAirportFuelTax)) //{ // string[] strDatas = strAirportFuelTax.Split('��'); // if (!string.IsNullOrEmpty(strDatas[0])) // routeInformation.AirportTax = double.Parse(strDatas[0]); // if (!string.IsNullOrEmpty(strDatas[1])) // routeInformation.FuelTax = double.Parse(strDatas[1]); //} return routeInformation; }
private string GetRealQuestUrl(string strContent, VeryTripRegexExpression veryTripRegex) { return GetPrefixUrl() + RegexOperation.GetValueByRegex(veryTripRegex.GetWaitingSuffixRegex(), strContent); }
private IList<string> GetPageUrl(string strContent, VeryTripRegexExpression veryRegexInstance) { IList<string> pageUrlList = new List<string>(); string strPages = RegexOperation.GetValueByRegex(veryRegexInstance.GetPageFragmentRegex(), strContent); if (string.IsNullOrEmpty(strPages)) return pageUrlList; IList<string> suffixUrlList = RegexOperation.GetValuesByRegex(veryRegexInstance.GetPageLinkRegex(), strPages); foreach(string strSuffixUrl in suffixUrlList) { pageUrlList.Add(GetPrefixUrl() + strSuffixUrl); } return pageUrlList; }
private string GetNomalFragment(string strContent, VeryTripRegexExpression veryRegexInstance) { string strNomalContent = RegexOperation.GetValueByRegex(veryRegexInstance.GetNormalFragmentRegex(), strContent); if (!string.IsNullOrEmpty(strNomalContent)) strNomalContent += Constant.CMATCHSIGN; return strNomalContent; }
private List<RouteInformation> GetCurrentPageRoute(string strContent, VeryTripRegexExpression veryTripRegex) { IList<string> valueList = RegexOperation.GetValuesByRegex(veryTripRegex.GetSingleRowRegex(), strContent); List<RouteInformation> routeInformationList = new List<RouteInformation>(); RouteInformation routeInformation; foreach (string strValue in valueList) { routeInformation = GetRouteInformation(strValue, veryTripRegex); if (routeInformation != null) { routeInformation.SeatList = GetSeatInformation(strValue, veryTripRegex); routeInformationList.Add(routeInformation); } } return routeInformationList; }