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';") { }
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); }