protected override void EndExecute(AsyncCodeActivityContext context, IAsyncResult result)
        {
            var task = result as Task <HttpResponseMessage>;

            if (task.IsFaulted)
            {
                throw task.Exception.InnerException;
            }
            if (task.IsCanceled || context.IsCancellationRequested)
            {
                context.MarkCanceled();
                return;
            }

            try
            {
                var response         = task.Result;
                var requestSuccesful = response.StatusCode == HttpStatusCode.OK;
                var output           = response.Content.ReadAsStringAsync().GetAwaiter().GetResult();
                HTTPResponseStatus.Set(context, response.StatusCode);
                HTTPResponseBody.Set(context, output);
                HTTPResponseHeaders.Set(context, response.Headers);
                RequestSuccesful.Set(context, requestSuccesful);

                try
                {
                    APIResponse deserializedAPIResponse = JsonConvert.DeserializeObject <APIResponse>(output);
                    APIResponse.Set(context, deserializedAPIResponse);
                }
                catch (Exception)
                {
                }
            }
            catch (OperationCanceledException)
            {
                context.MarkCanceled();
            }
            finally
            {
                if (task.Result != null)
                {
                    task.Result.Dispose();
                }
            }
        }
Exemple #2
0
        public static string GetStatusMessage(HTTPResponseStatus status)
        {
            string result = "Unknown";

            switch (status)
            {
            case HTTPResponseStatus.OK:
                result = "OK";
                break;

            case HTTPResponseStatus.NotFound:
                result = "Not Found";
                break;

            case HTTPResponseStatus.InternalServerError:
                result = "Internal Server Error";
                break;

            case HTTPResponseStatus.NotImplemented:
                result = "Not Implemented";
                break;
            }
            return(result);
        }