Amido.Testing.Http.RestClient.IsRetryConditionSatisfied C# (CSharp) Method

IsRetryConditionSatisfied() private static method

private static IsRetryConditionSatisfied ( HttpResponseMessage httpResponseMessage, RetryType retryType, object retryParameter ) : bool
httpResponseMessage HttpResponseMessage
retryType RetryType
retryParameter object
return bool
        private static bool IsRetryConditionSatisfied(HttpResponseMessage httpResponseMessage, RetryType retryType, object retryParameter)
        {
            switch (retryType)
            {
                case RetryType.UntilStatusCodeEquals:
                    {
                        if (httpResponseMessage.StatusCode == (HttpStatusCode)retryParameter)
                        {
                            return true;
                        }
                        break;
                    }
                case RetryType.UntilBodyIncludes:
                    {
                        var result = httpResponseMessage.Content.ReadAsStringAsync().Result;
                        var enumerableParameter = retryParameter as IEnumerable<object>;
                        if (enumerableParameter != null)
                        {
                            if (enumerableParameter.All(p => result.Contains(p.ToString())))
                                return true;
                        }
                        else if (result.Contains(retryParameter.ToString()))
                        {
                            return true;
                        }
                        break;
                    }
                case RetryType.UntilBodyDoesNotInclude:
                    {
                        var result = httpResponseMessage.Content.ReadAsStringAsync().Result;
                        var enumerableParameter = retryParameter as IEnumerable<object>;
                        if (enumerableParameter != null)
                        {
                            if (!enumerableParameter.Any(p => result.Contains(p.ToString())))
                                return true;
                        }
                        else if (!result.Contains(retryParameter.ToString()))
                        {
                            return true;
                        }
                        break;
                    }
            }

            return false;
        }