public virtual IResponseConcern <T> Post <T, ReqConcern>(string url, IRequestConcern <ReqConcern> request = null) where ReqConcern : new() { RestRequest restRequest = new RestRequest(url, Method.POST) { JsonSerializer = JsonSerializer.Default, RequestFormat = DataFormat.Json }; if (request != null) { if (request.QueryParams != null && request.QueryParams.Any()) { foreach (var param in request.QueryParams) { restRequest.AddQueryParameter(param.Key, param.Value); } } //TO DO: Need to find better way to handle if (request != null && request.Concern != null) { restRequest.AddJsonBody(request.Concern); } } var response = Execute <T>(restRequest); LogApi(BaseUrl, request, response, restRequest); return(response); }
public virtual IResponseConcern <T> Get <T>(string url, IRequestConcern request = null) { RestRequest restRequest = new RestRequest(url, Method.GET); if (request != null && request.QueryParams.Any()) { foreach (var param in request.QueryParams) { restRequest.AddQueryParameter(param.Key, param.Value); } } return(Execute <T>(restRequest)); }
public virtual IResponseConcern Delete(string url, IRequestConcern request = null) { RestRequest restRequest = new RestRequest(url, Method.DELETE); if (request != null && request.QueryParams != null && request.QueryParams.Any()) { foreach (var param in request.QueryParams) { restRequest.AddQueryParameter(param.Key, param.Value); } } var response = Execute(restRequest); LogApi(BaseUrl, request, response, restRequest); return(response); }
private void AddJsonBody(RestRequest restRequest, IRequestConcern request) { try { var concernProp = request.GetType().GetProperty("Concern"); if (concernProp != null) { restRequest.AddJsonBody(concernProp.GetValue(request)); } else { restRequest.AddJsonBody(request); } } catch (Exception ex) { } }
public virtual IResponseConcern Post(string url, IRequestConcern request = null) { RestRequest restRequest = new RestRequest(url, Method.POST) { JsonSerializer = JsonSerializer.Default }; if (request != null) { if (request.QueryParams != null && request.QueryParams.Any()) { foreach (var param in request.QueryParams) { restRequest.AddQueryParameter(param.Key, param.Value); } } AddJsonBody(restRequest, request); } var response = Execute(restRequest); LogApi(BaseUrl, request, response, restRequest); return(response); }
protected void LogApi(string url, IRequestConcern request, IResponseConcern response, IRestRequest baseRequest = null, IRestResponse baseResponse = null) { if (ConfigurationManager.AppSettings["ENABLE:SERIALIZATIONLOG"] != null) { if (Logger == null) { return; } StringBuilder sb = new StringBuilder(); sb.Append($" Url :{url}{baseRequest.Resource} Status: {baseResponse?.ResponseStatus.ToString()} Code:{baseResponse?.StatusCode}"); if (baseResponse != null && baseResponse.ErrorException != null) { Logger.Log(baseResponse.ErrorException, sb.ToString()); } Logger.LogApi(sb.ToString(), $@"{{ ""Url"":""{url}{baseRequest.Resource}"", ""Request.Params"":{JsonSerializer.Default.Serialize(baseRequest?.Parameters.Where(_ => _.Type == ParameterType.QueryString))}, ""Request.Body"":{JsonSerializer.Default.Serialize(request)}, ""Reponse.Status"":""{baseResponse?.StatusCode.ToString()} {response.IsSuccess.ToString()}"", ""Response.Body"":{response.ToJson()} }}"); } }
public IResponseConcern <T> PostWithCallback <T, ReqConcern>(string url, string callbackUrl, IRequestConcern <ReqConcern> request = null) where T : new() where ReqConcern : new() { this.TransactionContext?.SetCallbackUrl(callbackUrl); return(base.Post <T, ReqConcern>(url, request)); }