IPolicyWrapExtension
Extension methods for IPolicyWrap.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
namespace Polly.Wrap
{
public static class IPolicyWrapExtension
{
public static IEnumerable<IsPolicy> GetPolicies(this IPolicyWrap policyWrap)
{
if (policyWrap == null)
throw new ArgumentNullException("policyWrap");
return GetPoliciesIterator(policyWrap);
}
public static IEnumerable<TPolicy> GetPolicies<TPolicy>(this IPolicyWrap policyWrap)
{
return policyWrap.GetPolicies().OfType<TPolicy>();
}
public static IEnumerable<TPolicy> GetPolicies<TPolicy>(this IPolicyWrap policyWrap, Func<TPolicy, bool> filter)
{
if (filter == null)
throw new ArgumentNullException("filter");
return policyWrap.GetPolicies().OfType<TPolicy>().Where(filter);
}
public static TPolicy GetPolicy<TPolicy>(this IPolicyWrap policyWrap)
{
return policyWrap.GetPolicies().OfType<TPolicy>().SingleOrDefault();
}
public static TPolicy GetPolicy<TPolicy>(this IPolicyWrap policyWrap, Func<TPolicy, bool> filter)
{
if (filter == null)
throw new ArgumentNullException("filter");
return policyWrap.GetPolicies().OfType<TPolicy>().SingleOrDefault(filter);
}
[IteratorStateMachine(typeof(<GetPoliciesIterator>d__5))]
private static IEnumerable<IsPolicy> GetPoliciesIterator(IPolicyWrap policyWrap)
{
<GetPoliciesIterator>d__5 <GetPoliciesIterator>d__ = new <GetPoliciesIterator>d__5(-2);
<GetPoliciesIterator>d__.<>3__policyWrap = policyWrap;
return <GetPoliciesIterator>d__;
}
}
}