예제 #1
0
        public static IRestContainer Union(this IRestContainer container, IRestContainer with)
        {
            container.AssertNotNull(nameof(container));
            with.AssertNotNull(nameof(with));

            return(new CompositeProvider(new[] { with, container }));
        }
예제 #2
0
        public RestContainerBuilder(IRestContainer parent)
            : this()
        {
            parent.AssertNotNull(nameof(parent));

            _registrations.Add(parent);
        }
예제 #3
0
 public static void ExecuteFor <T>(this IRestContainer container, Action <T> action)
 {
     foreach (var c in container.Resolve <T>())
     {
         action(c);
     }
 }
예제 #4
0
 public void ResolveDependencies(IRestContainer container)
 {
     RequestBinders             = container.Resolve <IRequestBinder>().ToArray();
     ResponseBinders            = container.Resolve <IResponseBinder>().ToArray();
     ContentMapper              = container.Required <DefaultHttpRequestContentFormatter>();
     RouteRenderer              = container.Required <RestRouteRenderer>();
     RestSerializer             = container.Required <RestSerializer>();
     DefaultCultureInfoProvider = container.Required <IDefaultCultureProvider>();
 }
예제 #5
0
        public RestClient(IRestContainer container)
        {
            container.AssertNotNull(nameof(container));

            _container          = container;
            _clientFactory      = _container.Required <IHttpClientFactory>();
            _executionStrategy  = _container.Required <IHttpExecutionStrategy>();
            _httpResponseMapper = _container.Required <IHttpResponseMapper>();
            _requestMapper      = _container.Required <IHttpRequestMapper>();
        }
예제 #6
0
        public static T Required <T>(this IRestContainer container)
        {
            var component = container.Resolve <T>().FirstOrDefault();

            if (component != null)
            {
                return(component);
            }

            throw new InvalidOperationException($"Component '{typeof(T)}' is not registered"); //TODO ex type, msg
        }
예제 #7
0
        public EndpointProxy(IRestEndpoint endpoint, EndpointMetadata metadata, IRestContainer components)
        {
            endpoint.AssertNotNull(nameof(endpoint));
            metadata.AssertNotNull(nameof(metadata));
            components.AssertNotNull(nameof(components));

            _endpoint         = endpoint;
            _metadata         = metadata;
            _modelMapper      = components.Required <RestModelMapper>();
            _resultValidators = components.Resolve <IInvocatioтFilter>().ToList();
        }
 public virtual void ResolveDependencies(IRestContainer container)
 {
     ValueFormatters = container.Resolve <IRestValueFormatter>().ToArray();
 }
 public void ResolveDependencies(IRestContainer container)
 {
     Logger = container.Optional <IHttpExecutionLogger>();
 }
예제 #10
0
 public void ResolveDependencies(IRestContainer container)
 {
     DefaultEncodingProvider  = container.Required <IDefaultEncodingProvider>();
     DefaultMediaTypeProvider = container.Required <IDefaultMediaTypeProvider>();
 }
예제 #11
0
 public void ResolveDependencies(IRestContainer container)
 {
     _logger = container.Required <IRestLogger>();
 }
예제 #12
0
 public virtual void ResolveDependencies(IRestContainer container)
 {
     ContentFormatters           = container.Resolve <IRestContentFormatter>().ToArray();
     RequestQueryValueFormatters = container.Resolve <RequestQueryValueFormatter>().ToArray();
     RequestRouteValueFormatters = container.Resolve <RequestRouteValueFormatter>().ToArray();
 }
예제 #13
0
 public static T Optional <T>(this IRestContainer container)
 {
     return(container.Resolve <T>().FirstOrDefault());
 }
예제 #14
0
 public static bool IsRegistered <T>(this IRestContainer container)
 {
     return(container.Resolve <T>().Any());
 }
예제 #15
0
 public void ResolveDependencies(IRestContainer container)
 {
     RestSerializer = container.Required <RestSerializer>();
 }
 public void ResolveDependencies(IRestContainer container)
 {
     ContentMapper  = container.Required <HttpRequestContentMapper>();
     RouteRenderer  = container.Required <RestRouteRenderer>();
     RestSerializer = container.Required <RestSerializer>();
 }
예제 #17
0
 public virtual void ResolveDependencies(IRestContainer container)
 {
     ContentFormatters = container.Resolve <IHttpRequestContentFormatter>().ToArray();
 }