public void ListActivityTypes() { var clientKey = "wpma9vemz3pfu8tyq3y85va29dx23ff6"; var accessToken = "321a93d2329879543cb67c47c03e55f3c8e752b9"; var uri = "https://oauth2-api.mapmyapi.com/v7.0/activity_type/"; var request = WebRequest.CreateHttp(uri); request.Headers.Add("Api-Key",clientKey); request.Headers.Add("Authorization", "Bearer " + accessToken); var activityTypes = new Dictionary<string, MmfActivityType>(); using (var response = request.GetResponse()) using (var responseBody = response.GetResponseStream()) { var reader = new StreamReader(responseBody, Encoding.UTF8); var responseString = reader.ReadToEnd(); var activityTypeResponse = JsonConvert.DeserializeObject<dynamic>(responseString); foreach (var activityType in activityTypeResponse._embedded.activity_types) { string id = activityType._links.self[0].id; string name = activityType.name; var type = new MmfActivityType { Id = activityType._links.self[0].id, Name = activityType.name, RootId = activityType._links.root[0].id }; activityTypes.Add(id, type); } GetContinuingActivityTypes(activityTypeResponse,activityTypes); } foreach (var activityType in activityTypes) { var rootType = activityTypes[activityType.Value.RootId]; Console.WriteLine("{0}|{1}|{2}", activityType.Value.Id, rootType.Name, activityType.Value.Name); } }
private static void GetContinuingActivityTypes(dynamic lastResponse, Dictionary<string, MmfActivityType> activityTypes) { if (lastResponse._links.next != null) { var clientKey = "wpma9vemz3pfu8tyq3y85va29dx23ff6"; var accessToken = "321a93d2329879543cb67c47c03e55f3c8e752b9"; var uri = "https://oauth2-api.mapmyapi.com" + lastResponse._links.next[0].href; var request = WebRequest.CreateHttp(uri); request.Headers.Add("Api-Key", clientKey); request.Headers.Add("Authorization", "Bearer " + accessToken); using (var response = request.GetResponse()) using (var responseBody = response.GetResponseStream()) { var reader = new StreamReader(responseBody, Encoding.UTF8); var responseString = reader.ReadToEnd(); var activityTypeResponse = JsonConvert.DeserializeObject<dynamic>(responseString); foreach (var activityType in activityTypeResponse._embedded.activity_types) { string id = activityType._links.self[0].id; string name = activityType.name; var type = new MmfActivityType { Id = activityType._links.self[0].id, Name = activityType.name, RootId = activityType._links.root[0].id }; activityTypes.Add(id, type); } GetContinuingActivityTypes(activityTypeResponse, activityTypes); } } }