You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 lines
2.7 KiB

  1. using Swift.API.Common;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.IO;
  5. using System.Linq;
  6. using System.Net;
  7. using System.Text;
  8. using System.Web.Script.Serialization;
  9. namespace Swift.API.TPAPIs.DongaPushAPI
  10. {
  11. public class DongaAPIService : IDongaAPIService
  12. {
  13. string logId = "";
  14. public DbResult SendTxnDonga(string user, DongaPushDetail _txnDetail, string provider)
  15. {
  16. DbResult _dbResult = new DbResult();
  17. string _baseURL = "http://localhost:55287";
  18. SendTxnRequest _requestData = new SendTxnRequest();
  19. _requestData.provider = provider;
  20. _requestData.requestJSON = new JavaScriptSerializer().Serialize(_txnDetail);
  21. string _request = new JavaScriptSerializer().Serialize(_requestData);
  22. _dbResult = Utility.LogRequest(user, "Donga", "SendTxnDonga", _txnDetail.controlNo, _request);
  23. logId = _dbResult.Id;
  24. _requestData.processId = _dbResult.Extra;
  25. var _requestMain = new JavaScriptSerializer().Serialize(_requestData); //this contains the processId from log request
  26. try
  27. {
  28. HttpWebRequest _httpRequest = (HttpWebRequest)WebRequest.Create(_baseURL + "/api/SendAPITxn");
  29. _httpRequest.ContentType = "application/json";
  30. _httpRequest.Method = "POST";
  31. _httpRequest.Headers.Add("HeaderToken", "C1A2E2774D4158A909CC4B727C412E95595E8731E10FEFDFC931AE8123BF4F51");
  32. _httpRequest.Headers.Add("Authorization", "E3B8C3C55A6FB072E458D21DF2DD7CA7CFE176FB28D6047603B07B1B3C92749D");
  33. using (var _streamWriter = new StreamWriter(_httpRequest.GetRequestStream()))
  34. {
  35. _streamWriter.Write(_requestMain);
  36. _streamWriter.Flush();
  37. _streamWriter.Close();
  38. }
  39. var _httpResponse = (HttpWebResponse)_httpRequest.GetResponse();
  40. using (var _streamReader = new StreamReader(_httpResponse.GetResponseStream()))
  41. {
  42. _dbResult = new JavaScriptSerializer().Deserialize<DbResult>(_streamReader.ReadToEnd());
  43. }
  44. Utility.LogResponse(logId, _dbResult.Extra2, _dbResult.ErrorCode, _dbResult.Msg);
  45. _httpResponse.Close();
  46. }
  47. catch (Exception e)
  48. {
  49. _dbResult.ErrorCode = "999";
  50. _dbResult.Msg = e.Message.ToString();
  51. Utility.LogResponse(logId, "Exception Occured", _dbResult.ErrorCode, _dbResult.Msg);
  52. return _dbResult;
  53. }
  54. return _dbResult;
  55. }
  56. }
  57. }