private Models.Salesforce.Lead ConvertLead(string loanId, Loan origRequest) { Models.Salesforce.Lead lead = new Models.Salesforce.Lead(); lead.FirstName = origRequest.Party.Name.FirstName; lead.LastName = origRequest.Party.Name.LastName; lead.Description = loanId; return(lead); }
/// <summary> /// Submits Lead Record /// </summary> /// <returns></returns> public async Task <string> PostLeadAsync(Models.Salesforce.Lead lead) { try { var requestPayload = JsonSerializer.Serialize(lead); if (String.IsNullOrEmpty(Bearer)) //TODO check for Bearer expiry and refresh if needed { await Authorize(); } string resultId = String.Empty; var req = new HttpRequestMessage(HttpMethod.Post, SfdcConfig.BasePath + SfdcConfig.URILead); req.Headers.Authorization = new AuthenticationHeaderValue("Bearer", Bearer); req.Content = new StringContent(requestPayload, Encoding.UTF8, "application/json"); HttpResponseMessage response = await _httpClient.SendAsync(req); if (response.StatusCode != System.Net.HttpStatusCode.OK && response.StatusCode != System.Net.HttpStatusCode.Created) { Logger.LogError("Salesforce request: {0}-{1}", response.StatusCode, response.ReasonPhrase); var error = await response.Content.ReadFromJsonAsync <Models.Salesforce.Error[]>(); foreach (Models.Salesforce.Error err in error) { Logger.LogError("Salesforce error {0}: {1}", err.ErrorCode, err.Message); } throw new SystemException("Error in saving lead to Salesforce has occurred."); } else { var leadresponse = await response.Content.ReadFromJsonAsync <Models.Salesforce.Response>(); Logger.LogInformation("Lead created in Salesforce: {0}", leadresponse.Id); resultId = leadresponse.Id; } Logger.LogInformation("Salesforce created Lead: {0}", resultId); return(resultId); } catch (SystemException e) { throw; } catch (Exception e) { Logger.LogError(e, "Unexpected error occurred in posting lead to Salesforce"); throw; } }