|
|
using Business.LoqateApi; using Common.Models.Loqate; using Common.Models.RequestResponse; using log4net; using System; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace Business.BusinessLogic.Address { public class ServiceApi {
public string _key { get; set; } PostcodeAnywhere_SoapClient _SoapClient { get; set; } public ServiceApi() { _key = ConfigurationManager.AppSettings["loqatekey"].ToString(); _SoapClient = new PostcodeAnywhere_SoapClient(); }
public Capture_Interactive_Find_v1_10_ArrayOfResults Find_v1_10(string search) {
return _SoapClient.Capture_Interactive_Find_v1_10(_key, search, true, null, null, "GB", 20, "en-gb", false, "", "");
}
public Capture_Interactive_Find_v1_10_ArrayOfResults Find_v1_10(string search, string container) {
return _SoapClient.Capture_Interactive_Find_v1_10(_key, search, true, container, "", "GB", 20, "en-gb", false, "", "");
}
} public class LocateBusiness:ILocateBusiness { private static readonly ILog Log = LogManager.GetLogger(typeof(LocateBusiness));
ServiceApi serviceApi { get; set; } public LocateBusiness() { serviceApi = new ServiceApi();
}
public TPResponse QueryAddress(string postCode)
{ TPResponse rxResponse = new TPResponse() { ResponseCode = "1", Msg = "No Data found" }; var results = serviceApi.Find_v1_10(postCode);
Log.Debug(Newtonsoft.Json.JsonConvert.SerializeObject(results));
if (results != null && results.Any()) { var single = results.FirstOrDefault(); if (single != null && single.Type.Equals("Postcode")) { rxResponse.ResponseCode = "0"; rxResponse.Msg = "Post code found";
var result2 = serviceApi.Find_v1_10(postCode, single.Id);
QueryResponse queryResponsse = new QueryResponse();
queryResponsse.Addresses = new List<Common.Models.Loqate.Address>(); foreach (Capture_Interactive_Find_v1_10_Results item in result2) { queryResponsse.Addresses.Add(new Common.Models.Loqate.Address() { Id = item.Id, Type = item.Type, Address1 = item.Text, City = item.Description.Substring(0, item.Description.LastIndexOf(",")), Address2= item.Description }); }
rxResponse.Data = queryResponsse; } } else { rxResponse.Msg = "No result!"; }
return rxResponse; }
} }
|