private async Task <ExecuteResult> ExecuteInternal(HttpExecuteArg args) { var json = string.Empty; ApiExecuteError error = null; try { using (var client = new HttpClient()) { var dict = new Dictionary <string, string>(); foreach (var arg in args.Variables) { dict.Add(arg.Variable, arg.Value.ToString()); } client.DefaultRequestHeaders.Add("Authorization", Authorization); var result = await client.PostAsync(BaseUrl + args.TableName, new FormUrlEncodedContent(dict)); if (result.StatusCode == System.Net.HttpStatusCode.Unauthorized) //auth error { error = new ApiExecuteError(ApiExecuteErrorType.AuthError, "Authentication error"); } else if (result.StatusCode != HttpStatusCode.OK) // some other error { string message = await result.Content.ReadAsStringAsync(); error = new ApiExecuteError(ApiExecuteErrorType.Fail, message); } else { //{"error":"NO_DATA unknown airport INVALID"} //{"error":"NO_DATA flight not found"} //{"error":"INVALID_ARGUMENT endDate is too far in the future (12 months)"} json = await result.Content.ReadAsStringAsync(); } } } catch (Exception) { return(new ExecuteResult() { Result = string.Empty, Error = new ApiExecuteError(ApiExecuteErrorType.Fail, "Api error") }); } return(new ExecuteResult() { Result = json, Error = error }); }
public ApiExecuteResult(TData data, ApiExecuteError error) { Data = data; Error = error; }