Пример #1
0
 public CarShareContext(EwebahConfig config) : base(
         $@"metadata=res://*/Models.Repositories.Data.CarShareContext.csdl|res://*/Models.Repositories.Data.CarShareContext.ssdl|res://*/Models.Repositories.Data.CarShareContext.msl;provider=System.Data.SqlClient;provider connection string=';data source={
             config.DbServer
         };initial catalog={config.DbName};persist security info=True;user id={config.DbUsername};password={
             config.DbPassword
         };multipleactiveresultsets=True;application name=EntityFramework';")
 {
 }
Пример #2
0
        public virtual HttpConfiguration GetInjectionConfiguration()
        {
            var configuration = new HttpConfiguration();
            var container     = new UnityContainer();

            var config  = new EwebahConfig();
            var context = new CarShareContext(config);
            var mailer  = new WelcomeMailer(config.SmtpUsername, config.SmtpPassword, config.SmtpServer,
                                            config.SmtpPort);

            container.RegisterInstance <IEmailProvider>(mailer);

            //specify concrete instances of classes that should be injected when interface is marked
            container.RegisterType <IUserRepository, UserRepository>(new TransientLifetimeManager(),
                                                                     new InjectionConstructor(context));
            container.RegisterType <IBookingRepository, BookingRepository>(new TransientLifetimeManager(),
                                                                           new InjectionConstructor(context));
            container.RegisterType <IRegistrationRepository, RegistrationRepository>(new TransientLifetimeManager(),
                                                                                     new InjectionConstructor(context));
            container.RegisterType <ICarRepository, CarRepository>(new TransientLifetimeManager(),
                                                                   new InjectionConstructor(context));
            container.RegisterType <ICarCategoryRepository, CarCategoryRepository>(new TransientLifetimeManager(),
                                                                                   new InjectionConstructor(context));
            container.RegisterType <ICityRepository, CityRepository>(new TransientLifetimeManager(),
                                                                     new InjectionConstructor(context));
            container.RegisterType <ITransactionHistoryRepository, TransactionHistoryRepository>(
                new TransientLifetimeManager(), new InjectionConstructor(context));
            container.RegisterType <IPaymentMethodRepository, PaymentMethodRepository>(new TransientLifetimeManager(),
                                                                                       new InjectionConstructor(context));
            container.RegisterType <ITemplateRepository, TemplateRepository>(new TransientLifetimeManager(),
                                                                             new InjectionConstructor(context));

            container.RegisterType <IUserService, UserService>(new TransientLifetimeManager());
            container.RegisterType <ICarService, CarService>(new TransientLifetimeManager());
            container.RegisterType <IBookingService, BookingService>(new TransientLifetimeManager());
            container.RegisterType <ICityService, CityService>(new TransientLifetimeManager());
            container.RegisterType <IAdminService, AdminService>(new TransientLifetimeManager());


            //set this container as the http configurations dependency injection provider
            configuration.DependencyResolver = new UnityResolver(container);
            return(configuration);
        }