Beispiel #1
0
        /// <summary>
        /// Gets a segment stream asynchronously.
        /// </summary>
        /// <param name="segmentId">The Strava segment id.</param>
        /// <param name="typeFlags">Specifies the type of stream.</param>
        /// <param name="resolution">Specifies the resolution of the stream.</param>
        /// <returns>The stream data.</returns>
        public async Task<List<SegmentStream>> GetSegmentStreamAsync(String segmentId, SegmentStreamType typeFlags, StreamResolution resolution = StreamResolution.All)
        {
            // Only distance, altitude and latlng stream types are available.

            StringBuilder types = new StringBuilder();

            foreach (SegmentStreamType type in (StreamType[])Enum.GetValues(typeof(SegmentStreamType)))
            {
                if (typeFlags.HasFlag(type))
                {
                    types.Append(type.ToString().ToLower());
                    types.Append(",");
                }
            }

            types.Remove(types.ToString().Length - 1, 1);

            String getUrl = String.Format("{0}/{1}/streams/{2}?{3}&access_token={4}",
                Endpoints.Leaderboard,
                segmentId,
                types,
                resolution != StreamResolution.All ? "resolution=" + resolution.ToString().ToLower() : "",
                Authentication.AccessToken
                );

            String json = await WebRequest.SendGetAsync(new Uri(getUrl));

            return Unmarshaller<List<SegmentStream>>.Unmarshal(json);
        }
        /// <summary>
        /// Gets a segment stream.
        /// </summary>
        /// <param name="segmentId">The Strava segment id.</param>
        /// <param name="typeFlags">Specifies the type of stream.</param>
        /// <param name="resolution">Specifies the resolution of the stream.</param>
        /// <returns>The stream data.</returns>
        public List <SegmentStream> GetSegmentStream(string segmentId, SegmentStreamType typeFlags, StreamResolution resolution = StreamResolution.All)
        {
            // Only distance, altitude and latlng stream types are available.

            StringBuilder types = new StringBuilder();

            foreach (SegmentStreamType type in (StreamType[])Enum.GetValues(typeof(SegmentStreamType)))
            {
                if (typeFlags.HasFlag(type))
                {
                    types.Append(type.ToString().ToLower());
                    types.Append(",");
                }
            }

            types.Remove(types.ToString().Length - 1, 1);

            string getUrl = string.Format("{0}/{1}/streams/{2}?{3}&access_token={4}",
                                          Endpoints.Leaderboard,
                                          segmentId,
                                          types,
                                          resolution != StreamResolution.All ? "resolution=" + resolution.ToString().ToLower() : "",
                                          Authentication.AccessToken
                                          );

            string json = WebRequest.SendGet(new Uri(getUrl));

            return(Unmarshaller <List <SegmentStream> > .Unmarshal(json));
        }
        /// <summary>
        /// Gets a segment effort stream.
        /// </summary>
        /// <param name="effortId">The Strava segment effort id.</param>
        /// <param name="typeFlags">Specifies the type of stream.</param>
        /// <param name="resolution">Specifies the resolution of the stream.</param>
        /// <returns>The stream data.</returns>
        public List <SegmentEffortStream> GetSegmentEffortStream(string effortId, SegmentStreamType typeFlags, StreamResolution resolution = StreamResolution.All)
        {
            StringBuilder types = new StringBuilder();

            foreach (SegmentStreamType type in (StreamType[])Enum.GetValues(typeof(SegmentStreamType)))
            {
                if (typeFlags.HasFlag(type))
                {
                    types.Append(type.ToString().ToLower());
                    types.Append(",");
                }
            }

            types.Remove(types.ToString().Length - 1, 1);

            string getUrl = string.Format("https://www.strava.com/api/v3/segment_efforts/{0}/streams/{1}?{2}&access_token={3}",
                                          effortId,
                                          types,
                                          resolution != StreamResolution.All ? "resolution=" + resolution.ToString().ToLower() : "",
                                          Authentication.AccessToken
                                          );

            string json = WebRequest.SendGet(new Uri(getUrl));

            return(Unmarshaller <List <SegmentEffortStream> > .Unmarshal(json));
        }
Beispiel #4
0
        public async Task <List <SegmentEffortStream> > GetSegmentEffortStreamAsync(string effortId, SegmentStreamType typeFlags, StreamResolution resolution = StreamResolution.All)
        {
            StringBuilder types = new StringBuilder();

            StreamType[] array = (StreamType[])Enum.GetValues(typeof(SegmentStreamType));
            for (int i = 0; i < array.Length; i++)
            {
                SegmentStreamType type = (SegmentStreamType)array[i];
                if (typeFlags.HasFlag(type))
                {
                    types.Append(type.ToString().ToLower());
                    types.Append(",");
                }
            }
            types.Remove(types.ToString().Length - 1, 1);
            string getUrl = string.Format("https://www.strava.com/api/v3/segment_efforts/{0}/streams/{1}?{2}&access_token={3}", effortId, types, (resolution != StreamResolution.All) ? ("resolution=" + resolution.ToString().ToLower()) : "", Authentication.AccessToken);

            return(Unmarshaller <List <SegmentEffortStream> > .Unmarshal(await WebRequest.SendGetAsync(new Uri(getUrl))));
        }
Beispiel #5
0
        public List <SegmentStream> GetSegmentStream(string segmentId, SegmentStreamType typeFlags, StreamResolution resolution = StreamResolution.All)
        {
            StringBuilder stringBuilder = new StringBuilder();

            StreamType[] array = (StreamType[])Enum.GetValues(typeof(SegmentStreamType));
            for (int i = 0; i < array.Length; i++)
            {
                SegmentStreamType segmentStreamType = (SegmentStreamType)array[i];
                if (typeFlags.HasFlag(segmentStreamType))
                {
                    stringBuilder.Append(segmentStreamType.ToString().ToLower());
                    stringBuilder.Append(",");
                }
            }
            stringBuilder.Remove(stringBuilder.ToString().Length - 1, 1);
            string uriString = string.Format("{0}/{1}/streams/{2}?{3}&access_token={4}", "https://www.strava.com/api/v3/segments", segmentId, stringBuilder, (resolution != StreamResolution.All) ? ("resolution=" + resolution.ToString().ToLower()) : "", Authentication.AccessToken);
            string json      = WebRequest.SendGet(new Uri(uriString));

            return(Unmarshaller <List <SegmentStream> > .Unmarshal(json));
        }
Beispiel #6
0
        /// <summary>
        /// Gets a segment effort stream.
        /// </summary>
        /// <param name="effortId">The Strava segment effort id.</param>
        /// <param name="typeFlags">Specifies the type of stream.</param>
        /// <param name="resolution">Specifies the resolution of the stream.</param>
        /// <returns>The stream data.</returns>
        public List<SegmentEffortStream> GetSegmentEffortStream(String effortId, SegmentStreamType typeFlags, StreamResolution resolution = StreamResolution.All)
        {
            StringBuilder types = new StringBuilder();

            foreach (SegmentStreamType type in (StreamType[])Enum.GetValues(typeof(SegmentStreamType)))
            {
                if (typeFlags.HasFlag(type))
                {
                    types.Append(type.ToString().ToLower());
                    types.Append(",");
                }
            }

            types.Remove(types.ToString().Length - 1, 1);

            String getUrl = String.Format("https://www.strava.com/api/v3/segment_efforts/{0}/streams/{1}?{2}&access_token={3}",
                effortId,
                types,
                resolution != StreamResolution.All ? "resolution=" + resolution.ToString().ToLower() : "",
                Authentication.AccessToken
                );

            String json = WebRequest.SendGet(new Uri(getUrl));

            return Unmarshaller<List<SegmentEffortStream>>.Unmarshal(json);
        }