/// <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);
            }
        }
コード例 #3
0
        /// <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);
        }
コード例 #5
0
        /// <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);
        }