Пример #1
0
        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
            });
        }
Пример #2
0
 public ApiExecuteResult(TData data, ApiExecuteError error)
 {
     Data  = data;
     Error = error;
 }