示例#1
0
        private static void Main()
        {
            try
            {
                Console.WriteLine($"Starting {Assembly.GetEntryAssembly().GetName().Name}...{Environment.NewLine}");

                DependencyConfig.BuildContainer();

                var categoryModels = new List <CategoryModel>
                {
                    new CategoryModel {
                        CategoryName = "CategoryName", Description = "Description"
                    },
                    new CategoryModel {
                        CategoryName = "CategoryName", Description = "Description"
                    },
                    new CategoryModel {
                        CategoryName = "CategoryName", Description = "Description"
                    }
                };

                using (var northwindUoW = DependencyConfig.Container.GetInstance <INorthwindSingleDbContextUnitOfWork>())
                {
                    Console.WriteLine($"Inserting {categoryModels.Count} Categories into Northwind.Categories...{Environment.NewLine}");

                    var results = northwindUoW.InsertCategoriesAsync(categoryModels).GetAwaiter().GetResult();

                    Console.WriteLine($"New IDs: {string.Join(',', results.Select(x => x.CategoryId))}{Environment.NewLine}");
                    Console.WriteLine($"Query Northwind.Categories for new records...{Environment.NewLine}");
                }

                Console.WriteLine("Press ENTER to exit.");
                Console.ReadLine();
            }
            finally
            {
                DependencyConfig.Container.Dispose();
            }
        }
        /// <summary>
        ///
        /// </summary>
        protected void Application_Start()
        {
            var container = new Container();

            container.Options.DefaultScopedLifestyle = new AsyncScopedLifestyle();

            // Register your types, for instance using the scoped lifestyle:
            // Since the interfaces and models exisit in a service project, we will set them up there...
            DependencyConfig.Setup(container);

            container.Verify();



            AreaRegistration.RegisterAllAreas();
            GlobalConfiguration.Configure(WebApiConfig.Register);
            GlobalConfiguration.Configuration.DependencyResolver = new SimpleInjectorWebApiDependencyResolver(container);

            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
示例#3
0
文件: UnitTest1.cs 项目: SashaVuu/MPP
        public void ConfigExceptionTests()
        {
            DependencyConfig dependencies = new DependencyConfig();

            dependencies.Register <IRepository, RepositoryImpl>(LifeTime.Instance);

            ArgumentException ex = Assert.Throws <ArgumentException>(() => dependencies.Register <IRepository, RepositoryImpl>(LifeTime.Instance));

            Assert.AreEqual("Such dependency is already registered", ex.Message);

            ArgumentException ex2 = Assert.Throws <ArgumentException>(() => dependencies.Register(typeof(IRepository), typeof(ServiceImpl1), LifeTime.Instance));

            Assert.AreEqual("TImplementation doesn't implement TDependency interface", ex2.Message);

            ArgumentException ex3 = Assert.Throws <ArgumentException>(() => dependencies.Register(typeof(IService), typeof(AbstractClass), LifeTime.Instance));

            Assert.AreEqual("TImplementation can't be an abstract class", ex3.Message);

            ArgumentException ex4 = Assert.Throws <ArgumentException>(() => dependencies.Register(typeof(IService), typeof(NonConstructor), LifeTime.Instance));

            Assert.AreEqual("TImplementation doesn't have any public constructors", ex4.Message);
        }
示例#4
0
        protected override void RegisterApplicationComponents(IApplicationBuilder app, IKernel kernel)
        {
            app.UseSignalR(routes =>
            {
                routes.MapHub <TasksHub>("/tasks");
            });

            _applicationBuilder = app;

            kernel.Bind <IHubContext <TasksHub> >().ToMethod(x => GetHubContext <TasksHub>());
            kernel.Bind <IHostedService>().To <TasksMessagingService>();
            DependencyConfig.Configure(kernel);
            DependencyResolver.SetResolver(kernel);

            var tuple   = kernel.Get <Tuple <IContextStorage, IConnectionContext> >();
            var storage = tuple.Item1;
            var context = tuple.Item2;

            using (context.Scope())
            {
                storage.Get().Database.Migrate();
            }
        }
示例#5
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();

            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Info
                {
                    Title       = "My Core.WebApi Starter kit",
                    Version     = "v1",
                    Description = "This is a WebApi.Core starter kit.",
                    //TermsOfService = "None",
                    //Contact = new Contact { Name = "Vinicius Paiva", Email = "*****@*****.**", Url = "https://www.linkedin.com/in/vinicius-da-silva-50963923" },
                });

                //Set the comments path for the swagger json and ui.
                var basePath = PlatformServices.Default.Application.ApplicationBasePath;
                var xmlPath  = Path.Combine(basePath, "WebApi.BaseApp.xml");
                c.IncludeXmlComments(xmlPath);
            });
            services.AddMvcCore().AddApiExplorer();
            DependencyConfig.ConfigureDependencies(services, Configuration);
        }
示例#6
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            //UnityConfig.RegisterComponents();
            GlobalConfiguration.Configure(WebApiConfig.Register);
            FilterConfig.RegisterGlobalFilter(GlobalFilters.Filters);
            DependencyConfig.Config();
            //FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            //RouteConfig.RegisterRoutes(RouteTable.Routes);
            //BundleConfig.RegisterBundles(BundleTable.Bundles);


            //var container = new Container();
            ////container.Register<IDbContext, IocDbContext>();
            //container.Register<IDbContext, IocDbContext>();
            ////container.Register<IUserService, UserService>();
            //container.Register<IRepository<User>, Repository<User>>();
            //container.Register<IRepository<UserProfile>, Repository<UserProfile>>();

            //container.Verify();

            //DependencyResolver.SetResolver(new SimpleInjectorDependencyResolver(container));
            //GlobalConfiguration.Configuration.DependencyResolver = new SimpleInjectorDependencyResolver(container);
        }
示例#7
0
 protected void Application_Start()
 {
     AreaRegistration.RegisterAllAreas();
     RouteConfig.RegisterRoutes(RouteTable.Routes);
     DependencyConfig.Register();
 }
            public void Should_return_true_if_identical_but_BuildInfos_are_ordered_different(DependencyConfig config)
            {
                List <BuildInfo> buildInfos = config.BuildInfos.ToList();

                buildInfos.Reverse();

                var otherConfig = new DependencyConfig()
                {
                    BuildConfigId = config.BuildConfigId,
                    BuildInfos    = buildInfos,
                };

                Assert.Equal(config, otherConfig);
            }
示例#9
0
 protected BaseTest(ITestOutputHelper output)
 {
     Output    = output;
     Container = DependencyConfig.BuildContainer();
 }
        public async Task SerilogUsedWhenCakeMissing(Mock <IServiceCollection> mockColl, ClearVariableSetArgs args)
        {
            await DependencyConfig.Setup(args, null, mockColl.Object, false).ConfigureAwait(false);

            mockColl.Verify(m => m.Add(It.Is <ServiceDescriptor>(s => s.ServiceType == typeof(ILogger) && ((CakeLoggerAbstraction)s.ImplementationInstance)._serilogLogger != null)), Times.Once);
        }
 public async Task NullOrEmptyApiKeyThrows(string apiKey, Mock <IServiceCollection> mockColl, ArgsBase args)
 {
     args.ApiKey = apiKey;
     Func <Task> sut = () => DependencyConfig.Setup(args, null, mockColl.Object, false);
     await sut.Should().ThrowAsync <ArgumentException>().ConfigureAwait(false);
 }
示例#12
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            Services.Services.TaskScheduler.Instance.ScheduleTask(02, 30, 24,
                                                                  () =>
            {
                new Services.Services.MailService("morning");
            });
            Services.Services.TaskScheduler.Instance.ScheduleTask(14, 30, 24,
                                                                  () =>
            {
                new Services.Services.MailService("evening");
            });
            services.AddControllers();
            DependencyConfig.RegisterConfig(services);
            services.AddCors(o => o.AddPolicy("CabOPolicy", builder =>
            {
                builder.AllowAnyMethod()
                .AllowAnyHeader()
                .AllowAnyOrigin();
            }));
            services.AddDbContext <CabODbContext>(options =>

                                                  options.UseSqlServer(Configuration.GetConnectionString("SqlServerConnection")), ServiceLifetime.Transient);

            var key            = "Experion.CabO,CabBookingSystemDevelepedByFreshersBatch";
            var symmetricToken = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(key));

            services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
            .AddJwtBearer(options =>
            {
                options.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateAudience         = true,
                    ValidateIssuer           = true,
                    ValidateIssuerSigningKey = true,
                    ValidateLifetime         = true,
                    ValidIssuer      = "CabOAdmin",
                    ValidAudience    = "CabOUser",
                    IssuerSigningKey = symmetricToken
                };
            });


            services.AddSwaggerGen(c => {
                c.SwaggerDoc("v1", new OpenApiInfo
                {
                    Version     = "v1",
                    Title       = "CabO",
                    Description = "Cab Booking System"
                });
                c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
                {
                    Description = @"JWT Authorization header using the Bearer scheme. \r\n\r\n 
                 Enter 'Bearer' [space] and then your token in the text input below.
                 \r\n\r\nExample: 'Bearer ANCDDDDDDDDDDDDKDKJDKWJ'",
                    Name        = "Authorization",
                    In          = ParameterLocation.Header,
                    Type        = SecuritySchemeType.ApiKey,
                    Scheme      = "Bearer"
                });
                c.AddSecurityRequirement(new OpenApiSecurityRequirement()
                {
                    {
                        new OpenApiSecurityScheme
                        {
                            Reference = new OpenApiReference
                            {
                                Type = ReferenceType.SecurityScheme,
                                Id   = "Bearer"
                            },
                            Scheme = "oauth2",
                            Name   = "Bearer",
                            In     = ParameterLocation.Header,
                        },
                        new List <string>()
                    }
                });
            });
            services.AddControllers();
        }
示例#13
0
 protected void Application_Start()
 {
     DependencyConfig.Configure();
     GlobalConfiguration.Configure(WebApiConfig.Register);
 }
示例#14
0
 public static async Task <int> Main(string[] cmdArgs)
 {
     return(await Parser.Default.ParseArguments <ValidateArgs, ClearVariableSetArgs, LibraryTargetArgs, ValidateTenantArgs, UploadTenantArgs, UploadProjectArgs, ClearProjectArgs, ClearTenantArgs>(cmdArgs)
            .MapResult <ValidateArgs, ClearVariableSetArgs, LibraryTargetArgs, ValidateTenantArgs, UploadTenantArgs, UploadProjectArgs, ClearProjectArgs, ClearTenantArgs, Task <int> >(
                async validateArgs =>
     {
         await DependencyConfig.Setup(validateArgs).ConfigureAwait(false);
         var cmd = DependencyConfig.Container.GetService <ValidateLibraryCommand>();
         await cmd.Execute().ConfigureAwait(false);
         return 0;
     },
                async clearArgs =>
     {
         await DependencyConfig.Setup(clearArgs).ConfigureAwait(false);
         var cmd = DependencyConfig.Container.GetService <ClearVariableSetCommand>();
         await cmd.Execute().ConfigureAwait(false);
         return 0;
     },
                async libArgs =>
     {
         await DependencyConfig.Setup(libArgs).ConfigureAwait(false);
         var cmd = DependencyConfig.Container.GetService <UploadLibraryCommand>();
         await cmd.Execute().ConfigureAwait(false);
         return 0;
     },
                async validateTeanantArgs =>
     {
         await DependencyConfig.Setup(validateTeanantArgs).ConfigureAwait(false);
         var cmd = DependencyConfig.Container.GetService <ValidateTenantCommand>();
         await cmd.Execute().ConfigureAwait(false);
         return 0;
     },
                async uploadTenantArgs =>
     {
         await DependencyConfig.Setup(uploadTenantArgs).ConfigureAwait(false);
         var cmd = DependencyConfig.Container.GetService <UploadTenantCommand>();
         await cmd.Execute().ConfigureAwait(false);
         return 0;
     },
                async uploadProjectArgs =>
     {
         await DependencyConfig.Setup(uploadProjectArgs).ConfigureAwait(false);
         var cmd = DependencyConfig.Container.GetService <UploadProjectCommand>();
         await cmd.Execute().ConfigureAwait(false);
         return 0;
     },
                async clearProjectArgs =>
     {
         await DependencyConfig.Setup(clearProjectArgs).ConfigureAwait(false);
         var cmd = DependencyConfig.Container.GetService <ClearProjectCommand>();
         await cmd.Execute().ConfigureAwait(false);
         return 0;
     },
                async clearTenantArgs =>
     {
         await DependencyConfig.Setup(clearTenantArgs).ConfigureAwait(false);
         var cmd = DependencyConfig.Container.GetService <ClearTenantCommand>();
         await cmd.Execute().ConfigureAwait(false);
         return 0;
     },
                _ => Task.FromResult(1)
                ).ConfigureAwait(false));
 }
示例#15
0
 public void Configuration(IAppBuilder app)
 {
     DependencyConfig.RegisterDependencies(app);
 }
示例#16
0
 public void Should_return_false_if_not_identical(DependencyConfig config, DependencyConfig otherConfig)
 {
     Assert.NotEqual(config, otherConfig);
 }
示例#17
0
 protected void Application_Start()
 {
     GlobalConfiguration.Configure(WebApiConfig.Register);
     DependencyConfig.SetAutofacWebAPI();
 }
示例#18
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers().ConfigureApiBehaviorOptions(options =>
            {
                options.SuppressConsumesConstraintForFormFileParameters = true;
            });

            services.AddCors(o => o.AddPolicy("MyPolicy", builder =>
            {
                builder.AllowAnyOrigin()
                .AllowAnyMethod()
                .AllowAnyHeader();
            }));

            DependencyConfig.RegisterConfig(services);

            services.AddControllers();

            services.AddDbContext <MyCartDBContext>(opt => opt.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));


            var key            = Configuration.GetValue <string>("SecretKey");
            var symmetricToken = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(key));

            services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
            .AddJwtBearer(options =>
            {
                options.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateAudience         = true,
                    ValidateIssuer           = true,
                    ValidateIssuerSigningKey = true,
                    ValidateLifetime         = true,
                    ValidIssuer      = "Admin",
                    ValidAudience    = "User",
                    IssuerSigningKey = symmetricToken
                };
            });


            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new OpenApiInfo
                {
                    Version     = "v1",
                    Title       = "MyCart API",
                    Description = "Contains list of all the APIs used in MyCart",
                });
                c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
                {
                    Description = @"JWT Authorization header using the Bearer scheme.
                      Enter 'Bearer' [space] and then your token in the text input below.
                      Example: 'Bearer your token'",
                    Name        = "Authorization",
                    In          = ParameterLocation.Header,
                    Type        = SecuritySchemeType.ApiKey,
                    Scheme      = "Bearer"
                });
                c.AddSecurityRequirement(new OpenApiSecurityRequirement()
                {
                    {
                        new OpenApiSecurityScheme
                        {
                            Reference = new OpenApiReference
                            {
                                Type = ReferenceType.SecurityScheme,
                                Id   = "Bearer"
                            },
                            Scheme = "oauth2",
                            Name   = "Bearer",
                            In     = ParameterLocation.Header,
                        },
                        new List <string>()
                    }
                });
            });
        }
示例#19
0
 protected void Application_Start()
 {
     GlobalConfiguration.Configure(WebApiConfig.Register);
     RouteConfig.RegisterRoutes(RouteTable.Routes);
     DependencyConfig.Register(GlobalConfiguration.Configuration);
 }
        public void SetUp()
        {
            var routeNames = Substitute.For <IRouteNames>();

            _dependencyConfig = new DependencyConfig(routeNames);
        }
示例#21
0
        public void ShouldDependencyRosolverWork()
        {
            var checkout = DependencyConfig.GetInstance <ICheckout>();

            Assert.True(checkout.GetType() == typeof(Checkout.Services.Checkout));
        }
示例#22
0
 public void Setup()
 {
     DependencyConfig.Setup();
 }
 public async Task UnknownTypeThrows(Mock <IServiceCollection> mockColl, UnkonwnArgs args)
 {
     Func <Task> sut = () => DependencyConfig.Setup(args, null, mockColl.Object, false);
     await sut.Should().ThrowAsync <ArgumentException>().ConfigureAwait(false);
 }