Example #1
0
        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);;
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
        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();
            }
        }