/// <summary> /// This method will upload files to the Media Server /// </summary> /// <param name="uploadURL"></param> /// <param name="fileInfoList"></param> /// <returns></returns> public string UploadFilesToMediaServer(string uploadURL, IList <FileInfo> fileInfoList) { var uploadResponse = string.Empty; try { var partnerAPIRequestURI = uploadURL; var partnerAPIHeader = new Dictionary <string, string> { { "Content-Type", "multipart/form-data" } }; _Logger.LogInformation("[PartnerAPIWrapper] - UploadFilesToEFolder - Before Execute Request - "); // Executing the Partner API Request var response = HttpCommunicationHelper.ExecuteRequest(partnerAPIHeader, partnerAPIRequestURI, RestSharp.Method.POST, fileInfoList); if (response.StatusCode == HttpStatusCode.OK) { uploadResponse = response.Content; } _Logger.LogInformation("[PartnerAPIWrapper] - UploadFilesToEFolder - Response Content - " + response.Content); } catch (Exception ex) { _Logger.LogError("[PartnerAPIWrapper] - UploadFilesToEFolder - Exception - " + ex.Message); _Logger.LogError("[PartnerAPIWrapper] - UploadFilesToEFolder - StackTrace - " + ex.StackTrace); } return(uploadResponse); }
/// <summary> /// This method will call the Create Request of Partner API /// </summary> /// <param name="uiData"></param> /// <param name="transactionId"></param> public void CreateRequest(string uiData, string transactionId) { try { _Logger.LogInformation("[PartnerAPIWrapper] - CreateRequest - Before Get OAuthToken - "); // Getting the OAuth Access Token var oAuthToken = GetPartnerOAuthToken(); if (oAuthToken.TokenString != null) { _Logger.LogInformation("[PartnerAPIWrapper] - CreateRequest - OAuthToken is not null - "); // replacing transactionId in the URL var partnerAPIRequestURI = _AppSettings.PartnerAPI.RequestURI.Replace("{{transactionId}}", transactionId); var partnerAPIHeader = GetHeaderForPartnerAPI(oAuthToken.TokenString); _Logger.LogInformation("[PartnerAPIWrapper] - CreateRequest - Before Execute Request - "); _Logger.LogInformation("[PartnerAPIWrapper] - CreateRequest - Post Data - " + JObject.Parse(uiData).ToString(Formatting.Indented)); // Executing the Partner API Request var response = HttpCommunicationHelper.ExecuteRequest(partnerAPIHeader, _AppSettings.PartnerAPI.EndPoint, partnerAPIRequestURI, RestSharp.Method.POST, uiData); } } catch (Exception ex) { _Logger.LogError("[PartnerAPIWrapper] - CreateRequest - Exception - " + ex.Message); _Logger.LogError("[PartnerAPIWrapper] - CreateRequest - StackTrace - " + ex.StackTrace); } }
/// <summary> /// Gets the OAuth Access token based on the credentials passed /// </summary> /// <returns></returns> public Token GetOAuthAccessToken() { Token responseToken = null; // getting the response string by performing an Http Post //var responseString = HttpCommunicationHelper.PerformPost(_OAuthCredentials, this._OAuthURL, this._EndPoint); var responseString = HttpCommunicationHelper.ExecuteRequest(_OAuthCredentials, this._OAuthURL, this._EndPoint, RestSharp.Method.POST); if (!string.IsNullOrEmpty(responseString)) { var jsonObject = JObject.Parse(responseString); // parsing the response if it is not null if (jsonObject != null) { responseToken = new Token() { TokenString = jsonObject.GetValue("access_token").ToString(), TokenType = jsonObject.GetValue("token_type").ToString() }; } } return(responseToken); }
/// <summary> /// Exchange a message over a given transaction. Calls the messaging API - Partner POST call. /// </summary> /// <param name="transactionId">Transaction ID of the transaction you are exchanging a message over. </param> /// <param name="body">Body of your message. Example: /// { /// "text":"When can we expect a response?", /// "senderName":"Robin Williams" /// } /// </param> /// <returns>A boolean indicating if your upload was successful or not. Upload can fail for several reasons - invalid transaction ID, malformed payload. /// If successful, a webhook will be shot to the lender. /// </returns> public bool PostMessage(string transactionId, string body) { bool uploadResponse = false; var oAuthToken = GetPartnerOAuthToken(); try { var partnerAPIRequestURI = _AppSettings.PartnerAPI.MessageURI.Replace("{{transactionId}}", transactionId); var partnerAPIHeader = GetHeaderForPartnerAPI(oAuthToken.TokenString); _Logger.LogInformation("[PartnerAPIWrapper] - Post Message - Before Execute Request - "); // Executing the Partner API Request var response = HttpCommunicationHelper.ExecuteRequest(partnerAPIHeader, _AppSettings.PartnerAPI.EndPoint, partnerAPIRequestURI, RestSharp.Method.POST, body); if (response.StatusCode == HttpStatusCode.Created) { uploadResponse = true; } _Logger.LogInformation("[PartnerAPIWrapper] - UploadFilesToEFolder - Response Content - " + response.Content); } catch (Exception ex) { _Logger.LogError("[PartnerAPIWrapper] - UploadFilesToEFolder - Exception - " + ex.Message); _Logger.LogError("[PartnerAPIWrapper] - UploadFilesToEFolder - StackTrace - " + ex.StackTrace); } return(uploadResponse); }
/// <summary> /// Will Introspect the token /// </summary> /// <returns></returns> public JObject IntrospectAccessToken() { // getting the response string by performing an Http Post var responseString = HttpCommunicationHelper.ExecuteRequest(_OAuthCredentials, this._OAuthURL, this._EndPoint, RestSharp.Method.POST); var jsonObject = JObject.Parse(responseString); return(jsonObject); }
/// <summary> /// This method will return a URL that the partner can use to post their attachments /// </summary> /// <param name="transactionId"></param> /// <returns></returns> public string GetDropFilesURL(string transactionId) { var dropFilesURL = string.Empty; try { _Logger.LogInformation("[PartnerAPIWrapper] - GetDropFilesURL - Before Get OAuthToken - "); // Getting the OAuth Access Token var oAuthToken = GetPartnerOAuthToken(); if (oAuthToken.TokenString != null) { _Logger.LogInformation("[PartnerAPIWrapper] - GetDropFilesURL - OAuthToken is not null - "); // replacing transactionId in the URL var partnerAPIRequestURI = _AppSettings.PartnerAPI.DropFilesURI.Replace("{{transactionId}}", transactionId); var partnerAPIHeader = GetHeaderForPartnerAPI(oAuthToken.TokenString); _Logger.LogInformation("[PartnerAPIWrapper] - GetDropFilesURL - Before Execute Request"); // Executing the Partner API Request var response = HttpCommunicationHelper.ExecuteRequest(partnerAPIHeader, _AppSettings.PartnerAPI.EndPoint, partnerAPIRequestURI, RestSharp.Method.GET, ""); if (response != null && response.StatusCode == HttpStatusCode.Created) { var responseHeaders = response.Headers.ToList(); var attachmentURL = responseHeaders.Find(x => x.Name.ToLower() == "location") != null?responseHeaders.Find(x => x.Name.ToLower() == "location").Value.ToString() : string.Empty; dropFilesURL = attachmentURL; _Logger.LogInformation("[PartnerAPIWrapper] - GetDropFilesURL - DropFilesURL - " + dropFilesURL); } } } catch (Exception ex) { _Logger.LogError("[PartnerAPIWrapper] - GetDropFilesURL - Exception - " + ex.Message); _Logger.LogError("[PartnerAPIWrapper] - GetDropFilesURL - StackTrace - " + ex.StackTrace); } return(dropFilesURL); }
/// <summary> /// This method will do a CreateResponse call to the Partner API /// </summary> /// <param name="responseData"></param> /// <param name="transactionId"></param> public bool CreateResponse(string responseData, string transactionId) { var isResponseCreated = false; try { _Logger.LogInformation("[PartnerAPIWrapper] - CreateResponse - Before Get OAuthToken - "); // Getting the OAuth Access Token var oAuthToken = GetPartnerOAuthToken(); if (oAuthToken.TokenString != null) { _Logger.LogInformation("[PartnerAPIWrapper] - CreateResponse - OAuthToken is not null - "); // replacing transactionId in the URL var partnerAPIRequestURI = _AppSettings.PartnerAPI.ResponseURI.Replace("{{transactionId}}", transactionId); var partnerAPIHeader = GetHeaderForPartnerAPI(oAuthToken.TokenString); _Logger.LogInformation("[PartnerAPIWrapper] - CreateResponse - Before Execute Request - "); // Adding the response in log _Logger.LogInformation("[PartnerAPIWrapper] - CreateResponse - Post Data - " + JObject.Parse(responseData).ToString(Formatting.Indented)); // Executing the Partner API Request var response = HttpCommunicationHelper.ExecuteRequest(partnerAPIHeader, _AppSettings.PartnerAPI.EndPoint, partnerAPIRequestURI, RestSharp.Method.POST, responseData); _Logger.LogInformation("[PartnerAPIWrapper] - CreateResponse - After ExecuteRequest"); if (response.StatusCode == HttpStatusCode.Created) { isResponseCreated = true; } } } catch (Exception ex) { _Logger.LogError("[PartnerAPIWrapper] - CreateResponse - Exception - " + ex.Message); _Logger.LogError("[PartnerAPIWrapper] - CreateResponse - StackTrace - " + ex.StackTrace); } return(isResponseCreated); }
/// <summary> /// This method will do the GetRequest call to the Partner API /// </summary> /// <param name="transactionId"></param> /// <returns></returns> public JObject GetRequest(string transactionId) { JObject requestData = null; try { _Logger.LogInformation("[PartnerAPIWrapper] - GetRequest - Before Get OAuthToken - "); // Getting the OAuth Access Token var oAuthToken = GetPartnerOAuthToken(); if (oAuthToken.TokenString != null) { _Logger.LogInformation("[PartnerAPIWrapper] - GetRequest - OAuthToken is not null - "); // replacing transactionId in the URL var partnerAPIRequestURI = _AppSettings.PartnerAPI.RequestURI.Replace("{{transactionId}}", transactionId); var partnerAPIHeader = GetHeaderForPartnerAPI(oAuthToken.TokenString); _Logger.LogInformation("[PartnerAPIWrapper] - GetRequest - Before Execute Request - "); // Executing the Partner API Request var response = HttpCommunicationHelper.ExecuteRequest(partnerAPIHeader, _AppSettings.PartnerAPI.EndPoint, partnerAPIRequestURI, RestSharp.Method.GET, ""); if (response != null && response.StatusCode == HttpStatusCode.OK) { requestData = new JObject(); requestData = JObject.Parse(response.Content); } _Logger.LogInformation("[PartnerAPIWrapper] - GetRequest - Request Data - " + requestData); } } catch (Exception ex) { _Logger.LogError("[PartnerAPIWrapper] - GetRequest - Exception - " + ex.Message); _Logger.LogError("[PartnerAPIWrapper] - GetRequest - StackTrace - " + ex.StackTrace); } return(requestData); }
/// <summary> /// Retrieve a specific message over a transaction. You can retrieve your own messages, but you'll usually be retrieving the lender's messages. /// </summary> /// <param name="transactionId">Transaction ID of the transaction you are exchanging a message over.</param> /// <param name="messageId">Unique message ID. Message IDs are located in the location header of the POST response.</param> /// <returns>A JObject passed to the MessageController encoding the object. It will look similar to the POST message body, with additional metadata attached.</returns> public JObject GetMessage(string transactionId, string messageId) { JObject messageObject = null; try { var authToken = GetPartnerOAuthToken(); if (authToken.TokenString != null) { _Logger.LogInformation("[PartnerAPIWrapper] - GetAllMessages - OAuthToken is not null - "); // replacing transactionId in the URL var partnerAPIMessageURI = _AppSettings.PartnerAPI.MessageURI_Individual.Replace("{{transactionId}}", transactionId); partnerAPIMessageURI = partnerAPIMessageURI.Replace("{{messageId}}", messageId); var partnerAPIHeader = GetHeaderForPartnerAPI(authToken.TokenString); _Logger.LogInformation("[PartnerAPIWrapper] - GetAllMessages - Before Execute Request - "); // Executing the Partner API Request var response = HttpCommunicationHelper.ExecuteRequest(partnerAPIHeader, _AppSettings.PartnerAPI.EndPoint, partnerAPIMessageURI, RestSharp.Method.GET, ""); if (response != null && response.StatusCode == HttpStatusCode.OK) { messageObject = new JObject(); messageObject = JObject.Parse(response.Content); } _Logger.LogInformation("[PartnerAPIWrapper] - GetAllMessages - Request Data - " + messageObject); } } catch (Exception ex) { _Logger.LogError("[PartnerAPIWrapper] - GetAllMessages - Exception - " + ex.Message); _Logger.LogError("[PartnerAPIWrapper] - GetAllMessages - StackTrace - " + ex.StackTrace); } return(messageObject); }