Exemplo n.º 1
0
        public static IRestOptionsBuilder Contract <TContract>(this IRestOptionsBuilder builder, Action <IRestOptionsBuilder <TContract> > subBuilder)
            where TContract : class
        {
            var sub = new RestOptionsBuilder <TContract>(builder.Services);

            subBuilder(sub);

            return(builder);
        }
Exemplo n.º 2
0
        public static IRestOptionsBuilder AddRestClient(this IServiceCollection services, string baseUrl = null)
        {
            IRestOptionsBuilder builder = new RestOptionsBuilder(services);

            builder.Services.AddScoped(typeof(RestOptions <>), typeof(DefaultRestOptions <>));
            builder.Services.AddScoped(typeof(RestClient <>));
            builder.Services.AddScoped <RestOptions>();
            builder.Services.AddSingleton <IContentFormatter, JsonContentFormatter>(sp => new JsonContentFormatter(CreateDefaultJsonSettings()));
            builder.Services.AddScoped <DefaultFormatterSelector>(sp => () => "application/json");

            if (!string.IsNullOrWhiteSpace(baseUrl))
            {
                builder = builder.WithBaseUrl(baseUrl);
            }

            return(builder);
        }
        public void CheckIfRegistryEntryIsUpdated()
        {
            Mock <IRestRegistry> registryMock = new Mock <IRestRegistry>();

            registryMock.Setup(r => r.Entries)
            .Returns(new RestRegistryEntry[] {
                new RestRegistryEntry(
                    typeof(ClassForRestOptionsBuilderTest),
                    RestAllowedOperations.All)
            });
            registryMock.Setup(r => r.Register(It.IsAny <RestRegistryEntry>()));
            IRestRegistry      registry = registryMock.Object;
            RestOptionsBuilder options  = new RestOptionsBuilder(registry)
                                          .WithModelOptions <ClassForRestOptionsBuilderTest>(modelOptions =>
            {
                modelOptions.WithDisabledAdd();
            });

            registryMock.Verify(r => r.Register(It.IsAny <RestRegistryEntry>()), Times.Once);
        }
        private static RestOptionsBuilder RegisterRestModelTypes(this IServiceCollection services, IEnumerable <Type> modelTypes)
        {
            IRestRegistry restRegistry        = new RestRegistry();
            Type          iDataRepositoryType = typeof(IDataRepository <>);
            Type          dataRepositoryType  = typeof(DataRepository <>);

            foreach (Type modelType in modelTypes)
            {
                RestAllowedOperations modelAllowedOperations = modelType.GetRestAllowedOperations();
                RestRegistryEntry     modelTypeEntry         = new RestRegistryEntry(modelType, modelAllowedOperations);
                restRegistry.Register(modelTypeEntry);
                services.AddScoped(
                    iDataRepositoryType.MakeGenericType(modelType),
                    dataRepositoryType.MakeGenericType(modelType)
                    );
            }

            services.AddSingleton(typeof(IRestRegistry), restRegistry);
            services.AddSingleton <IRestRouter, RestRouter>();
            services.AddRouting();
            RestOptionsBuilder options = new RestOptionsBuilder(restRegistry);

            return(options);
        }