public async Task <segmentJsonArray> GetSegments(float[] coordinateBoundaries, string travelType)
        {
            segmentJsonArray jsonArray = new segmentJsonArray();

            using (HttpClient client = new HttpClient())
            {
                string url = baseUrl + segmentsUrl + "/" + exploreUrl + "?" + boundsQuery + "[" + coordinateBoundaries[0] + "," + coordinateBoundaries[1] + "," + coordinateBoundaries[2] + "," + coordinateBoundaries[3] + "]" + "&" + activityTypeQuery + travelType + "&" + accessTokenQuery + accessToken;
                HttpResponseMessage response = new HttpResponseMessage();
                try
                {
                    response = await client.GetAsync(url);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
                string data = await response.Content.ReadAsStringAsync();

                try
                {
                    jsonArray = JsonConvert.DeserializeObject <segmentJsonArray>(data);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
                return(jsonArray);
            }
        }
Ejemplo n.º 2
0
        public List <segment> GetCyclingSegments(IEnumerable <Coordinates> coordinates)
        {
            Random         rnd      = new Random();
            List <segment> segments = new List <segment>();

            float[]          coordarea   = new float[4];
            segmentJsonArray segmentData = new segmentJsonArray();

            int numberOfCoords = 0;

            foreach (var coord in coordinates)
            {
                Console.WriteLine("Getting Segments From Coords" + ++numberOfCoords);
                var segmentDataTask = Task.Run(() => _stravaProvider.GetSegments(getCoordArea(coord), TravelTypes.travelTypesApiParameters[travelEnum.Cycling]));
                segmentDataTask.Wait();
                segmentData = segmentDataTask?.Result;

                if (segmentData?.segments != null)
                {
                    if (segmentData.segments.Count > 0)
                    {
                        foreach (var segment in segmentData.segments)
                        {
                            segments.Add(segment);
                        }
                    }
                }
            }
            return(segments);
        }
Ejemplo n.º 3
0
        public void GetCyclingSegmentsReturnsResults()
        {
            List <Coordinates> TestCoords = new List <Coordinates>()
            {
                new Coordinates()
                {
                    Lattitude  = 11,
                    Longtitude = 11
                }
            };


            var returnedResults = new segmentJsonArray()
            {
                segments = new List <segment>()
                {
                    new segment()
                }
            };

            TestSegmentJsonArray = Task.Run(() => returnedResults);

            mockStravaProvider.Setup(g => g.GetSegments(It.IsAny <float[]>(), It.IsAny <string>())).Returns(TestSegmentJsonArray);

            StravaBusiness stravaBusiness = new StravaBusiness(mockStravaProvider.Object);

            var res = stravaBusiness.GetCyclingSegments(TestCoords);

            Assert.AreEqual(res.Count, 1);
        }