Esempio n. 1
0
        public async Task <FitnessResponse> ReceiveRequest(string url)
        {
            var response = new FitnessResponse();

            HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(new Uri(url));

            httpRequest.ContentType = "application/json";
            httpRequest.Method      = "GET";

            try
            {
                using (WebResponse httpResponse = await httpRequest.GetResponseAsync())
                {
                    if (httpResponse != null)
                    {
                        response.Status = ((HttpWebResponse)httpResponse).StatusCode;
                        Stream stream = httpResponse.GetResponseStream();
                        using (StreamReader streamReader = new StreamReader(stream))
                        {
                            response.Content = await streamReader.ReadToEndAsync();
                        }
                    }
                }
            }
            catch (WebException ex)
            {
                if (ex.Response != null)
                {
                    using (WebResponse httpResponse = ex.Response)
                    {
                        response.Status = ((HttpWebResponse)httpResponse).StatusCode;

                        Stream stream = httpResponse.GetResponseStream();

                        using (StreamReader streamReader = new StreamReader(stream))
                        {
                            response.Content = await streamReader.ReadToEndAsync();
                        }
                    }
                }
                else
                {
                    response.Status = HttpStatusCode.BadRequest;
                    return(response);
                }
            }

            return(response);
        }
Esempio n. 2
0
        public async Task <Athlete> GetAthlete()
        {
            var athlete = new Athlete();

            string url = "https://www.strava.com/api/v3/athlete?access_token=";

            FitnessResponse response = await _webService.ReceiveRequest(url + Settings.AccessToken);

            if (response.Status == System.Net.HttpStatusCode.OK && !string.IsNullOrEmpty(response.Content))
            {
                return(JsonConvert.DeserializeObject <Athlete>(response.Content));
            }
            else
            {
                return(athlete);
            }
        }
Esempio n. 3
0
        public async Task <List <Activity> > GetLastTenDayActivities(string authenticationToken)
        {
            var activities = new List <Activity>();

            string url = "https://www.strava.com/api/v3/athlete/activities?include_all_efforts=true&access_token=";

            FitnessResponse response = await _webService.ReceiveRequest(
                url
                + authenticationToken
                + "&after="
                + ConvertToUnixTimestamp(DateTime.Now.AddDays(-10).Date));

            if (response.Status == System.Net.HttpStatusCode.OK && !string.IsNullOrEmpty(response.Content))
            {
                return(JsonConvert.DeserializeObject <List <Activity> >(response.Content));
            }
            else
            {
                return(activities);
            }
        }
Esempio n. 4
0
        public async Task <MyFitness.Model.Strava.Stream[]> GetActivityStream(int activityId, StreamType type)
        {
            Stream[] s = new Stream[] { new Stream() };

            string url = "https://www.strava.com/api/v3/activities/";

            FitnessResponse response = await _webService.ReceiveRequest(
                url
                + activityId + "/streams/"
                + Enum.GetName(typeof(StreamType), type)
                + "?access_token="
                + Settings.AccessToken);

            if (response.Status == System.Net.HttpStatusCode.OK && !string.IsNullOrEmpty(response.Content))
            {
                return(JsonConvert.DeserializeObject <Stream[]>(response.Content));
            }
            else
            {
                return(s);
            }
        }