using Common.Model; using log4net; using Newtonsoft.Json; using System; using System.Configuration; using System.Net.Http; using System.Text; namespace Common { public static class ThirdPartyApi { private static readonly ILog Log = LogManager.GetLogger(typeof(ThirdPartyApi)); public static string GetDefExRate(ExRateCalculateRequest model) { Log.Debug("GetDefExRate | Calling third party api to fetch the default exrate details " + JsonConvert.SerializeObject(model)); using (var client = RestApiClient.GetThirdPartyClient()) { if (model.payoutPartner == "415207") { client.BaseAddress = new Uri(ConfigurationManager.AppSettings["xPress_Url"].ToString()); } var obj = JsonConvert.SerializeObject(model); var jbdContent = new StringContent(obj.ToString(), Encoding.UTF8, "application/json"); try { HttpResponseMessage resp = client.PostAsync("api/global/ExRate/?isDefault=1", jbdContent).Result; if (resp.IsSuccessStatusCode) { string resultData = resp.Content.ReadAsStringAsync().Result; Log.Debug("GetDefExRate | Calling GetDefExRate Success, Response:" + resultData); return resultData; } Log.Debug("GetDefExRate | Error occurred while fetching the default ex-rate details from the third party api, Response:" + resp.ToString()); return null; } catch (Exception ex) { Log.Error("Something Went Wrong, Please Try Again!!", ex); return null; } } } public static string AccountValidation(AccountValidationModel model) { Log.Debug("AccountValidation | Calling third party api to validate the account/bank details " + JsonConvert.SerializeObject(model)); using (var client = RestApiClient.GetThirdPartyClient()) { var obj = JsonConvert.SerializeObject(model); var jbdContent = new StringContent(obj.ToString(), Encoding.UTF8, "application/json"); try { HttpResponseMessage resp = client.PostAsync("api/global/accountValidation", jbdContent).Result; if (resp.IsSuccessStatusCode) { string resultData = resp.Content.ReadAsStringAsync().Result; Log.Debug("AccountValidation | Calling AccountValidation Success, Response:" + resultData); return resultData; } Log.Debug("AccountValidation | Error occurred while validating the bank/account details from the third party api , Response:" + resp.ToString()); return null; } catch (Exception ex) { Log.Error("Something Went Wrong, Please Try Again!!", ex); return null; } } } public static string Calculate(ExRateCalculateRequest model) { Log.Debug("Calculate | Calling third party api to fetch the ex-rate details " + JsonConvert.SerializeObject(model)); using (var client = RestApiClient.GetThirdPartyClient()) { if (model.payoutPartner == "415207") { client.BaseAddress = new Uri(ConfigurationManager.AppSettings["xPress_Url"].ToString()); } var obj = JsonConvert.SerializeObject(model); var jbdContent = new StringContent(obj.ToString(), Encoding.UTF8, "application/json"); try { HttpResponseMessage resp = client.PostAsync("api/global/ExRate/?isDefault=0", jbdContent).Result; if (resp.IsSuccessStatusCode) { string resultData = resp.Content.ReadAsStringAsync().Result; Log.Debug("Calculate | Calling send money ex-rate details Success, Response:" + resultData); return resultData; } Log.Debug("Calculate | Error occurred while fetching the ex-rate details from the third party api, Response:" + resp.ToString()); return null; } catch (Exception ex) { Log.Error("Something Went Wrong, Please Try Again!!", ex); return null; } } } public static string SendTransaction(RemittanceRequestModel model) { Log.Debug("SendTransaction | Calling third party api to send transaction through mobile " + JsonConvert.SerializeObject(model)); using (var client = RestApiClient.GetThirdPartyClient()) { if (model.PayOutPartner == "415207") { client.BaseAddress = new Uri(ConfigurationManager.AppSettings["xPress_Url"].ToString()); } var obj = JsonConvert.SerializeObject(model); Log.Debug(obj); var jbdContent = new StringContent(obj.ToString(), Encoding.UTF8, "application/json"); try { HttpResponseMessage resp = client.PostAsync("api/global/sendTxn", jbdContent).Result; if (resp.IsSuccessStatusCode) { string resultData = resp.Content.ReadAsStringAsync().Result; Log.Debug("SendTransaction | Calling SendTransaction through mobile Success, Response:" + resultData); return resultData; } Log.Debug("SendTransaction | Error occurred from the third party api while sending the transaction through mobile , Response:" + resp.ToString()); return null; } catch (Exception ex) { Log.Error("Something Went Wrong, Please Try Again!!", ex); return null; } } } //public static string SendSms(SmsParameters smsParameters) //{ // Log.Debug("SendSms | Calling third party api to send the reset password through sms " + JsonConvert.SerializeObject(smsParameters)); // using (var client = RestApiClient.GetThirdPartyClient()) // { // var data = new // { // userId = ApplicationConfig.ReadWebConfig("GmeKTUser"), // scheduleType = smsParameters.scheduleType, // subject = smsParameters.subject, // message = smsParameters.message, // callBackUrl = smsParameters.callBackUrl, // todayDate = DateTime.Now.ToString("yyyyMMddHHmmss"), // sendDate = smsParameters.sendDate, // mobileNumber = ApplicationConfig.ReadWebConfig("mobileNumberForSms"), // receiverId = smsParameters.receiverId // }; // var obj = JsonConvert.SerializeObject(data); // var jbdContent = new StringContent(obj.ToString(), Encoding.UTF8, "application/json"); // try // { // HttpResponseMessage resp = client.PostAsync(ApplicationConfig.GetSendSmsApiUrl(), jbdContent).Result; // if (resp.IsSuccessStatusCode) // { // string resultData = resp.Content.ReadAsStringAsync().Result; // Log.Debug("SendSms | Calling SendSms Success, Response:" + resultData); // return resultData; // } // Log.Debug("SendSms | Error occurred from the third party api while sending the reset password through sms , Response:" + resp.ToString()); // return null; // } // catch (Exception ex) // { // Log.Error("Something Went Wrong, Please Try Again!!", ex); // return null; // } // } //} } }