public void BulkExportActivities() { Console.WriteLine("============================Getting token=============================="); Console.WriteLine("============================Creating job=============================="); ActivitiesExportRequest request = _requestFactorty.CreateActivitiesExportRequest(_host, _token); string job = ActivitiesHttpProcessor.CreateJob(request); Console.WriteLine("============================Getting exportedId=============================="); JObject jobObject = (JObject)JsonConvert.DeserializeObject(job); JToken result = jobObject["result"]; string exportedId = result[0]["exportId"].ToString(); request.ExportId = exportedId; Console.WriteLine("============================Enqueuing job " + exportedId + "=============================="); ActivitiesHttpProcessor.EnqueueJob(request); string status = ActivitiesHttpProcessor.GetJobStatus(request); while (status != "Completed") { System.Threading.Thread.Sleep(1 * 60 * 1000); status = ActivitiesHttpProcessor.GetJobStatus(request); //Console.WriteLine("==============================Waiting job to be completed====================================="); Console.WriteLine("==============================" + status + "====================================="); } if (ActivitiesHttpProcessor.GetJobStatus(request) == "Completed") { Console.WriteLine("==========================Job Completed, Start to retrieving==============================="); string extractedData = ActivitiesHttpProcessor.Export(request).Result; System.IO.File.WriteAllText(@"D:\activitity_results001.csv", extractedData); Console.WriteLine("==========================Done!==============================="); Console.ReadKey(); } }
public static string EnqueueJob(ActivitiesExportRequest request) { string url = request.Host + "/bulk/v1/activities/export/" + request.ExportId + "/enqueue.json?access_token=" + request.Token; HttpClient httpClient = new HttpClient(); StringContent content = new StringContent("", Encoding.UTF8, "application/json"); HttpResponseMessage response = httpClient.PostAsync(url, content).Result; response.EnsureSuccessStatusCode(); return(response.Content.ReadAsStringAsync().Result); }
public static string CreateJob(ActivitiesExportRequest request) { string url = request.Host + "/bulk/v1/activities/export/create.json?access_token=" + request.Token; HttpClient httpClient = new HttpClient(); StringContent content = new StringContent(BodyBuilder(request.OutputFormat, request.Filters), Encoding.UTF8, "application/json"); HttpResponseMessage response = httpClient.PostAsync(url, content).Result; response.EnsureSuccessStatusCode(); return(response.Content.ReadAsStringAsync().Result); }
public static async Task <string> Export(ActivitiesExportRequest request) { string url = request.Host + "/bulk/v1/activities/export/" + request.ExportId + "/file.json?access_token=" + request.Token; HttpClient client = new HttpClient(); HttpResponseMessage response = await client.GetAsync(url); response.EnsureSuccessStatusCode(); string content = await response.Content.ReadAsStringAsync(); return(content); }
public static string GetJobStatus(ActivitiesExportRequest request) { string url = request.Host + "/bulk/v1/activities/export/" + request.ExportId + "/status.json?access_token=" + request.Token; HttpClient client = new HttpClient(); HttpResponseMessage response = client.GetAsync(url).Result; response.EnsureSuccessStatusCode(); string content = response.Content.ReadAsStringAsync().Result; JObject jobObject = (JObject)JsonConvert.DeserializeObject(content); JToken result = jobObject["result"]; string jobStatus = result[0]["status"].ToString(); return(jobStatus); }
public ActivitiesExportRequest CreateActivitiesExportRequest(string host, string token) { string outputFormat = "csv"; string startAtTime = "2017-8-01T23:59:59-00:00"; string endAt = "2017-8-30T23:59:59-00:00"; Dictionary <string, dynamic> filter = new Dictionary <string, dynamic>(); Dictionary <string, string> createdAt = new Dictionary <string, string>(); createdAt.Add("startAt", startAtTime); createdAt.Add("endAt", endAt); filter.Add("createdAt", createdAt); int[] activityTypeIds = new int[] { 1, 2, 10, 11, 22, 46 }; filter.Add("activityTypeIds", activityTypeIds); ActivitiesExportRequest request = new ActivitiesExportRequest() { Host = host, Token = token, OutputFormat = outputFormat, Filters = filter }; return(request); }