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.

84 lines
3.1 KiB

  1. using Newtonsoft.Json;
  2. using Swift.API.Common;
  3. using Swift.API.Common.SyncModel;
  4. using Swift.API.Common.SyncModel.City;
  5. using Swift.API.Common.SyncModel.State;
  6. using Swift.API.Common.SyncModel.Town;
  7. using System;
  8. using System.Collections.Generic;
  9. using System.Linq;
  10. using System.Net.Http;
  11. using System.Text;
  12. namespace Swift.API.ThirdPartyApiServices
  13. {
  14. public class SyncStateCityTownService
  15. {
  16. public JsonResponse GetAddressList(AddressRequest model)
  17. {
  18. //Log.Debug("Calculate | Calling third party api to fetch the ex-rate details " + JsonConvert.SerializeObject(model));
  19. using (var client = RestApiClient.CallJMEThirdParty())
  20. {
  21. JsonResponse jsonResponse = new JsonResponse();
  22. var obj = JsonConvert.SerializeObject(model);
  23. var jbdContent = new StringContent(obj.ToString(), Encoding.UTF8, "application/json");
  24. try
  25. {
  26. var URL = "api/v1/TP/addressList";
  27. HttpResponseMessage resp = client.PostAsync(URL, jbdContent).Result;
  28. string resultData = resp.Content.ReadAsStringAsync().Result;
  29. if (resp.IsSuccessStatusCode)
  30. {
  31. jsonResponse = JsonConvert.DeserializeObject<JsonResponse>(resultData);
  32. dynamic a ;
  33. if (model.MethodType.ToLower() == "state")
  34. {
  35. a = (jsonResponse.Data != null ? JsonConvert.DeserializeObject<List<StateResponse>>(jsonResponse.Data.ToString()) : null);
  36. }
  37. else if (model.MethodType.ToLower() == "city")
  38. {
  39. a = (jsonResponse.Data != null ? JsonConvert.DeserializeObject<List<CityResponse>>(jsonResponse.Data.ToString()) : null);
  40. }
  41. else if (model.MethodType.ToLower() == "loqate")
  42. {
  43. a = (jsonResponse.Data != null ? JsonConvert.DeserializeObject<AddressDTO>(jsonResponse.Data.ToString()) : null);
  44. }
  45. else if (model.MethodType.ToLower() == "loqate")
  46. {
  47. a = (jsonResponse.Data != null ? JsonConvert.DeserializeObject<AddressDTO>(jsonResponse.Data.ToString()) : null);
  48. }
  49. else
  50. {
  51. a = (jsonResponse.Data != null ? JsonConvert.DeserializeObject<List<TownResponse>>(jsonResponse.Data.ToString()) : null);
  52. }
  53. jsonResponse.Data = a;
  54. return jsonResponse;
  55. }
  56. else
  57. {
  58. var errorJson = JsonConvert.DeserializeObject<ErrorJosn>(resultData);
  59. var jsonResponseData = JsonConvert.DeserializeObject<JsonResponse>(errorJson.Message);
  60. var data = JsonConvert.DeserializeObject<List<Data>>(jsonResponseData.Data.ToString());
  61. jsonResponse.Id = jsonResponseData.Id;
  62. jsonResponse.ResponseCode = jsonResponseData.ResponseCode;
  63. jsonResponse.Msg = jsonResponseData.Msg;
  64. jsonResponse.Data = data;
  65. jsonResponse.Extra = jsonResponseData.Extra;
  66. jsonResponse.Extra1 = jsonResponseData.Extra1;
  67. return jsonResponse;
  68. }
  69. }
  70. catch (Exception ex)
  71. {
  72. return new JsonResponse()
  73. {
  74. ResponseCode = "1",
  75. Msg = (ex.InnerException == null ? ex.Message : ex.InnerException.Message)
  76. };
  77. }
  78. }
  79. }
  80. }
  81. }