예제 #1
0
        public async Task <RouteStopForecast> GetRouteStopForecastAsync(RouteStop routeStop)
        {
            var bus13RouteStop = routeStop.VendorInfo as Bus13RouteStop;

            if (bus13RouteStop == null)
            {
                int id = 0;
                int.TryParse(routeStop.Id, out id);
                bus13RouteStop = new Bus13RouteStop {
                    Id = id, Type = "0"
                };
            }

            var request = this.GetRequestBase(RouteStopForecastResource);

            request.AddParameter("sid", bus13RouteStop.Id, ParameterType.QueryString);
            request.AddParameter("type", bus13RouteStop.Type, ParameterType.QueryString);
            request.AddParameter(InfoParam, _infoParamValue, ParameterType.QueryString);

            var client   = this.GetRestClient();
            var forecast = await this.ExecuteAsync <List <Bus13RouteStopForecastItem> >(client, request)
                           .ConfigureAwait(false);

            if (forecast != null && forecast.Any())
            {
                return(new RouteStopForecast(routeStop.Id, forecast.Select(this.ParseRouteStopForecast).ToList()));
            }

            return(new RouteStopForecast(routeStop.Id, new List <RouteStopForecastItem>()));
        }
예제 #2
0
        private string GenerateId(Bus13RouteStop sourceStop)
        {
            if (sourceStop == null)
            {
                return(string.Empty);
            }

            return($"{sourceStop.Id}_{sourceStop.Type}");
        }
예제 #3
0
        private RouteStop ParseRouteStop(Bus13RouteStop sourceRouteStop)
        {
            var routeStop = new RouteStop(
                this.GenerateId(sourceRouteStop),
                sourceRouteStop.Name,
                sourceRouteStop.Descr,
                this.ParsePoint(sourceRouteStop.Lat, sourceRouteStop.Lng))
            {
                VendorInfo = sourceRouteStop
            };

            return(this.ApplyPostProcessor(routeStop));
        }
예제 #4
0
        private RouteStop ParseRouteStop(int id, string name, string description, VehicleTypes vehicleType, GeoPoint location)
        {
            var bus13RouteStop = new Bus13RouteStop
            {
                Id    = id,
                Name  = name,
                Descr = description,
                Type  = this.ConvertVehicleTypeToTransportType(vehicleType).ToString(),
                Lat   = Convert.ToInt32(location.Latitude * 1000000),
                Lng   = Convert.ToInt32(location.Longitude * 1000000)
            };

            var routeStop = new RouteStop(this.GenerateId(bus13RouteStop), name, description, location)
            {
                VendorInfo = bus13RouteStop
            };

            return(this.ApplyPostProcessor(routeStop));
        }