void createResultSet(RootTrainObject rootStationObj) { TRAINRESULTS trainResults = rootStationObj.RESULTS; TRAINQUERY trainQuery = rootStationObj.QUERY; DirectTrains directTrains = trainResults.directTrains; ConnectingTrains connectingTrains = trainResults.connectingTrains; List <TrainsList> directTrainsList = directTrains.trainsList; List <TrainsList2> connectedTrainsList = connectingTrains.trainsList; foreach (TrainsList value in directTrainsList) { TrainListViewModel list = new TrainListViewModel(); list.depatureTime = value.depatureTime; list.arrivalTime = value.arrivalTimeEndStation; list.trainType = AppUtility.ToCamelCase(value.trainType); list.trainTypeFlag = 1; list.scheduleDetail = getScheduleDetailObj(trainQuery, value); formatLitNode(list); combinedTrainList.Add(list); } foreach (TrainsList2 value in connectedTrainsList) { TrainListViewModel list = new TrainListViewModel(); list.depatureTime = value.recordHeader[0].startArrivalTime; list.arrivalTime = value.recordHeader[0].endArrivalTime; list.trainType = APPCONTEXT.globalConnectedTrain; list.trainTypeFlag = 2; list.scheduleDetail = getScheduleDetailObj(trainQuery, value); formatLitNode(list); combinedTrainList.Add(list); } }
ScheduleDetailViewModel getScheduleDetailObj(TRAINQUERY trainQuery, TrainsList trainList) { ScheduleDetailViewModel scheduleDetailObj = new ScheduleDetailViewModel(); DateTime searchDate = DateTime.ParseExact(trainQuery.searchDate, "yyyy-MM-dd", CultureInfo.InvariantCulture); DateTime dtArrivalTime = DateTime.ParseExact(trainList.arrivalTime, "HH:mm:ss", CultureInfo.InvariantCulture); DateTime dtDepartureTime = DateTime.ParseExact(trainList.depatureTime, "HH:mm:ss", CultureInfo.InvariantCulture); DateTime dtArrivalTimeEndStation = DateTime.ParseExact(trainList.arrivalTimeEndStation, "HH:mm:ss", CultureInfo.InvariantCulture); if (dtDepartureTime > dtArrivalTimeEndStation) { dtArrivalTimeEndStation = dtArrivalTimeEndStation.AddDays(1.0); } TimeSpan ts = dtArrivalTimeEndStation.Subtract(dtDepartureTime).Duration(); string arrivalTime = dtArrivalTime.ToString("h:mm", CultureInfo.CurrentCulture); string arrivalTimeEndStation = dtArrivalTimeEndStation.ToString("h:mm", CultureInfo.CurrentCulture); string departureTime = dtDepartureTime.ToString("h:mm", CultureInfo.CurrentCulture); string departureTimeZone = dtDepartureTime.ToString("tt", CultureInfo.CurrentCulture); string arrivalTimeZone = dtArrivalTime.ToString("tt", CultureInfo.CurrentCulture); string arrivalTimeEndStationZone = dtArrivalTimeEndStation.ToString("tt", CultureInfo.CurrentCulture); StringBuilder availableClasses = new StringBuilder(); foreach (ClassList value in trainList.classList) { if (availableClasses.ToString() == "") { availableClasses.Append(value.className); } else { availableClasses.Append(", " + value.className); } } scheduleDetailObj.startStationId = trainQuery.startStaion; scheduleDetailObj.endStationId = trainQuery.endStaion; scheduleDetailObj.detailHeader = string.Format(APPCONTEXT.sheduleListHeader, trainList.startStationName, trainList.endStationName).ToLower();; scheduleDetailObj.departureTime = string.Format(APPCONTEXT.sceduleDetailTimeHeader, searchDate.DayOfWeek.ToString(), departureTime, departureTimeZone); scheduleDetailObj.arrivalTime = string.Format(APPCONTEXT.sceduleDetailTime, arrivalTime, arrivalTimeZone); scheduleDetailObj.arrivalTimeEndStation = string.Format(APPCONTEXT.sceduleDetailTime, arrivalTimeEndStation, arrivalTimeZone); scheduleDetailObj.travelTime = String.Format(APPCONTEXT.sheduleListDuration, ts.ToString(@"hh\:mm")); scheduleDetailObj.trainFrequncy = AppUtility.ToCamelCase(trainList.trainFrequncy); scheduleDetailObj.startStationName = AppUtility.ToCamelCase(trainList.startStationName); scheduleDetailObj.endStationName = AppUtility.ToCamelCase(trainList.endStationName); scheduleDetailObj.finalStationName = AppUtility.ToCamelCase(trainList.finalStationName); scheduleDetailObj.trainType = AppUtility.ToCamelCase(trainList.trainType); scheduleDetailObj.trainName = AppUtility.ToCamelCase(trainList.trainName.Equals("") ? "Not Available" : trainList.trainName); scheduleDetailObj.classList = availableClasses.ToString(); return(scheduleDetailObj); }
TRAINQUERY getQueryObject(FavoriteScheduleViewModel favoriteSchedule) { TRAINQUERY queryObj = new TRAINQUERY(); queryObj.startStaion = favoriteSchedule.startStationId; queryObj.startStaionName = favoriteSchedule.startStationName; queryObj.endStaion = favoriteSchedule.endStationId; queryObj.endStaionName = favoriteSchedule.endStationName; queryObj.searchDate = favoriteSchedule.startTime.ToString("yyyy-MM-dd"); queryObj.searchTimeStart = favoriteSchedule.startTime.ToString("HH:mm:ss"); queryObj.searchTimeEnd = favoriteSchedule.endTime.ToString("HH:mm:ss"); return(queryObj); }
TRAINQUERY getQueryObject(RecentSearchViewModel recentSearch) { TRAINQUERY queryObj = new TRAINQUERY(); queryObj.startStaion = recentSearch.startStationId; queryObj.startStaionName = recentSearch.startStationName; queryObj.endStaion = recentSearch.endStationId; queryObj.endStaionName = recentSearch.endStationName; queryObj.searchDate = recentSearch.startTime.ToString("yyyy-MM-dd"); queryObj.searchTimeStart = recentSearch.startTime.ToString("HH:mm:ss"); queryObj.searchTimeEnd = recentSearch.endTime.ToString("HH:mm:ss"); return(queryObj); }
void createCombinedTrainList() { trianQuery = (TRAINQUERY)NavigationService.GetNavigationData(); populateHeader(trianQuery); if (isInterntConAvailable()) { WebClient webClient = new WebClient(); webClient.DownloadStringCompleted += webClient_DownloadCombinedTrainsCompleted; webClient.DownloadStringAsync(new Uri(getServiceUri(trianQuery))); this.busyIndicator.IsRunning = true; } else { RadMessageBox.ShowAsync("AW SNAP :-(", MessageBoxButtons.OK, "We are having trouble downloading data due to temporary server unavailability at the moment."); } }
void populateHeader(TRAINQUERY trainQuery) { DateTime dtFrom = DateTime.ParseExact(trainQuery.searchTimeStart, "HH:mm:ss", CultureInfo.InvariantCulture); DateTime dtTo = DateTime.ParseExact(trainQuery.searchTimeEnd, "HH:mm:ss", CultureInfo.InvariantCulture); DateTime searchDate = DateTime.ParseExact(trainQuery.searchDate, "yyyy-MM-dd", CultureInfo.InvariantCulture); string fromStation = AppUtility.ToLowerCase(trainQuery.startStaionName); string toStation = AppUtility.ToLowerCase(trainQuery.endStaionName); string date = searchDate.DayOfWeek.ToString(); string fromTime = dtFrom.ToString("h:mm", CultureInfo.CurrentCulture); string toTime = dtTo.ToString("h:mm", CultureInfo.CurrentCulture); string fromZone = dtFrom.ToString("tt", CultureInfo.CurrentCulture); string toZone = dtTo.ToString("tt", CultureInfo.CurrentCulture); txtStations.Text = String.Format(APPCONTEXT.sheduleListHeader, fromStation, toStation); txtDate.Text = date; txtTimePeriod.Text = String.Format(APPCONTEXT.sheduleListTimePeriod, fromTime, fromZone, toTime, toZone); }
private void lsRecentSearch_Tap(object sender, System.Windows.Input.GestureEventArgs e) { RecentSearchViewModel recentSearch = (RecentSearchViewModel)lsRecentSearch.SelectedItem; if (recentSearch != null) { if (isInterntConAvailable()) { lsRecentSearch.SelectedItem = null; TRAINQUERY queryObj = getQueryObject(recentSearch); NavigationService.Navigate(new Uri("/ScheduleListPage.xaml", UriKind.Relative), queryObj); } else { lsRecentSearch.SelectedItem = null; RadMessageBox.ShowAsync("AW SNAP :-(", MessageBoxButtons.OK, "We are having trouble downloading data due to network connectivity or temporary server unavailability at the moment. Please make sure you are connected to internet and try again."); } } }
ScheduleDetailViewModel getScheduleDetailObj(TRAINQUERY trainQuery, TrainsList2 trainList) { ScheduleDetailViewModel scheduleDetailObj = new ScheduleDetailViewModel(); RecordHeader recordHeader = trainList.recordHeader[0]; List <ConnectedTrain> connectedTrains = trainList.connectedTrains; DateTime dtArrivalTime = DateTime.ParseExact(recordHeader.startArrivalTime, "HH:mm:ss", CultureInfo.InvariantCulture); DateTime dtDepartureTime = DateTime.ParseExact(recordHeader.startDepartureTime, "HH:mm:ss", CultureInfo.InvariantCulture); DateTime dtArrivalTimeEndStation = DateTime.ParseExact(recordHeader.endArrivalTime, "HH:mm:ss", CultureInfo.InvariantCulture); TimeSpan ts = dtArrivalTimeEndStation.Subtract(dtDepartureTime).Duration(); if (dtDepartureTime > dtArrivalTimeEndStation) { dtArrivalTimeEndStation = dtArrivalTimeEndStation.AddDays(1.0); } ConnetedTrainViewModel connectedTrain = new ConnetedTrainViewModel(); string arrivalTime = dtArrivalTime.ToString("h:mm", CultureInfo.CurrentCulture); string arrivalTimeEndStation = dtArrivalTimeEndStation.ToString("h:mm", CultureInfo.CurrentCulture); string departureTime = dtArrivalTime.ToString("h:mm", CultureInfo.CurrentCulture); string departureTimeZone = dtDepartureTime.ToString("tt", CultureInfo.CurrentCulture); string arrivalTimeZone = dtDepartureTime.ToString("tt", CultureInfo.CurrentCulture); string arrivalTimeEndStationZone = dtArrivalTimeEndStation.ToString("tt", CultureInfo.CurrentCulture); connectedTrain.connectedTrains = connectedTrains; scheduleDetailObj.startStationId = trainQuery.startStaion; scheduleDetailObj.endStationId = trainQuery.endStaion; scheduleDetailObj.detailHeader = string.Format(APPCONTEXT.sheduleListHeader, recordHeader.startName, recordHeader.endName).ToLower(); scheduleDetailObj.departureTime = string.Format(APPCONTEXT.sceduleDetailTimeHeader, dtDepartureTime.DayOfWeek.ToString(), departureTime, departureTimeZone); scheduleDetailObj.arrivalTime = string.Format(APPCONTEXT.sceduleDetailTime, arrivalTime, arrivalTimeZone); scheduleDetailObj.arrivalTimeEndStation = string.Format(APPCONTEXT.sceduleDetailTime, arrivalTimeEndStation, arrivalTimeZone); scheduleDetailObj.travelTime = String.Format(APPCONTEXT.sheduleListDuration, ts.ToString(@"hh\:mm")); scheduleDetailObj.startStationName = AppUtility.ToCamelCase(recordHeader.startName); scheduleDetailObj.endStationName = AppUtility.ToCamelCase(recordHeader.endName); scheduleDetailObj.trainType = APPCONTEXT.globalConnectedTrain; scheduleDetailObj.connectedTrain = connectedTrain; return(scheduleDetailObj); }
TRAINQUERY getQueryObject() { TRAINQUERY queryObj = new TRAINQUERY(); StationList startStaion = (StationList)acbFromStation.SelectedItem; StationList endStaion = (StationList)acbToStation.SelectedItem; DateTime searchDate = (radDatePicker.Value != null) ? Convert.ToDateTime(radDatePicker.Value) : DateTime.Now; DateTime searchTimeStart = (cbTimeFilter.IsChecked == true || rbNextSchedule.IsChecked == true) ? Convert.ToDateTime(rtFromTime.Value) : APPCONTEXT.defaultStartTime; DateTime searchTimeEnd = (cbTimeFilter.IsChecked == true) ? Convert.ToDateTime(rtToTime.Value) : APPCONTEXT.defaultEndTime; queryObj.startStaion = startStaion.stationID; queryObj.startStaionName = startStaion.stationName; queryObj.endStaion = endStaion.stationID; queryObj.endStaionName = endStaion.stationName; queryObj.searchDate = searchDate.ToString("yyyy-MM-dd"); queryObj.searchTimeStart = searchTimeStart.ToString("HH:mm:ss"); queryObj.searchTimeEnd = searchTimeEnd.ToString("HH:mm:ss"); return(queryObj); }
private void btnSearch_Click(object sender, RoutedEventArgs e) { if (isInterntConAvailable()) { if (validateInputs()) { TRAINQUERY queryObj = getQueryObject(); logRecentSearch(); //logFavoriteSchedule(); NavigationService.Navigate(new Uri("/ScheduleListPage.xaml", UriKind.Relative), queryObj); } else { RadMessageBox.ShowAsync("AW SNAP!", MessageBoxButtons.OK, "Looks like you have not selected start station and end station"); } } else { RadMessageBox.ShowAsync("AW SNAP :-(", MessageBoxButtons.OK, "We are having trouble downloading data due to network connectivity or temporary server unavailability at the moment. Please make sure you are connected to internet and try again."); } }
string getServiceUri(TRAINQUERY trianQuery) { string serviceUri = string.Format(WebService.ScheduleList, trianQuery.startStaion, trianQuery.endStaion, trianQuery.searchDate, trianQuery.searchTimeStart, trianQuery.searchTimeEnd); return(serviceUri); }