public static string RetrieveData(LeadsExportRequest request) { string url = request.Host + "/bulk/v1/leads/export/" + request.ExportId + "/file.json?access_token=" + request.Token; HttpClient httpClient = new HttpClient(); StringContent requestContent = new StringContent("", Encoding.UTF8, "application/json"); HttpResponseMessage response = httpClient.PostAsync(url, requestContent).Result; response.EnsureSuccessStatusCode(); return(response.Content.ReadAsStringAsync().Result);; }
public static string CreateJob(LeadsExportRequest request) { string url = request.Host + "/bulk/v1/leads/export/create.json?access_token=" + request.Token; HttpClient httpClient = new HttpClient(); StringContent content = new StringContent(Helper.BodyBuilder(request.OutputFormat, request.Fields, request.Filters), Encoding.UTF8, "application/json"); HttpResponseMessage response = httpClient.PostAsync(url, content).Result; response.EnsureSuccessStatusCode(); return(response.Content.ReadAsStringAsync().Result); }
public static string GetJobStatus(LeadsExportRequest request) { string url = request.Host + "/bulk/v1/leads/export/" + request.ExportId + "/status.json?access_token=" + request.Token; HttpClient httpClient = new HttpClient(); StringContent requestContent = new StringContent("", Encoding.UTF8, "application/json"); HttpResponseMessage response = httpClient.PostAsync(url, requestContent).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 LeadsExportRequest CreateGetLeadsExportRequest(string host, string token) { Dictionary <string, dynamic> filter = new Dictionary <string, dynamic>(); filter.Add("staticListName", "List Import"); string outputFormat = "csv"; string startAtTime = "2017-8-01T23:59:59-00:00"; string endAt = "2017-8-30T23:59:59-00:00"; LeadsExportRequest request = new LeadsExportRequest() { Host = host, Token = token, OutputFormat = outputFormat, Fields = new string[] { "firstName", "lastName", "id", "sfdcid", "email", "country" }, Filters = filter }; return(request); }
public void BulkExportLeads() { Console.WriteLine("============================Getting token=============================="); Console.WriteLine("============================Creating job=============================="); LeadsExportRequest leadsExportRequest = _requestFactorty.CreateGetLeadsExportRequest(_host, _token); string job = LeadsHttpProcessor.CreateJob(leadsExportRequest); Console.WriteLine("============================Getting exportedId=============================="); JObject jobObject = (JObject)JsonConvert.DeserializeObject(job); JToken result = jobObject["result"]; string exportedId = result[0]["exportId"].ToString(); leadsExportRequest.ExportId = exportedId; Console.WriteLine("============================Enqueuing job " + exportedId + "=============================="); LeadsHttpProcessor.EnqueueJob(leadsExportRequest); string status = LeadsHttpProcessor.GetJobStatus(leadsExportRequest); while (status != "Completed") { System.Threading.Thread.Sleep(1 * 60 * 1000); status = status = LeadsHttpProcessor.GetJobStatus(leadsExportRequest); //Console.WriteLine("==============================Waiting job to be completed====================================="); Console.WriteLine("==============================" + status + "====================================="); } if (LeadsHttpProcessor.GetJobStatus(leadsExportRequest) == "Completed") { Console.WriteLine("==========================Job Completed, Start to retrieving==============================="); string extractedData = LeadsHttpProcessor.RetrieveData(leadsExportRequest); System.IO.File.WriteAllText(@"D:\List_Import_Leads.csv", extractedData); Console.WriteLine("==========================Done!==============================="); Console.ReadKey(); } }