Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
 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.");
     }
 }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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.");
                }
            }
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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);
        }
Esempio n. 10
0
 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.");
     }
 }
Esempio n. 11
0
        string getServiceUri(TRAINQUERY trianQuery)
        {
            string serviceUri = string.Format(WebService.ScheduleList, trianQuery.startStaion, trianQuery.endStaion, trianQuery.searchDate, trianQuery.searchTimeStart, trianQuery.searchTimeEnd);

            return(serviceUri);
        }