static internal void ConfigureSmtpClient(SmtpClient smtpClient, MailSenderConfiguration configuration) { if (configuration.Host != null) { smtpClient.Host = configuration.Host; } if (configuration.Port.HasValue) { smtpClient.Port = configuration.Port.Value; } if (configuration.EnableSsl.HasValue) { smtpClient.EnableSsl = configuration.EnableSsl.Value; } if (configuration.DeliveryMethod.HasValue) { smtpClient.DeliveryMethod = configuration.DeliveryMethod.Value; } if (configuration.UseDefaultCredentials.HasValue) { smtpClient.UseDefaultCredentials = configuration.UseDefaultCredentials.Value; } if (configuration.Credentials != null) { smtpClient.Credentials = configuration.Credentials; } if (configuration.PickupDirectoryLocation != null) { smtpClient.PickupDirectoryLocation = configuration.PickupDirectoryLocation; } }
private static void RegisterSmtpEmailMessagingService(ContainerBuilder builder, ConfigurationService configuration) { MailSender mailSenderFactory() { var settings = configuration; if (settings.Current.SmtpUri != null && settings.Current.SmtpUri.IsAbsoluteUri) { var smtpUri = new SmtpUri(settings.Current.SmtpUri); var mailSenderConfiguration = new MailSenderConfiguration { DeliveryMethod = SmtpDeliveryMethod.Network, Host = smtpUri.Host, Port = smtpUri.Port, EnableSsl = smtpUri.Secure }; if (!string.IsNullOrWhiteSpace(smtpUri.UserName)) { mailSenderConfiguration.UseDefaultCredentials = false; mailSenderConfiguration.Credentials = new NetworkCredential( smtpUri.UserName, smtpUri.Password); } return(new MailSender(mailSenderConfiguration)); } else { var mailSenderConfiguration = new MailSenderConfiguration { DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory, PickupDirectoryLocation = HostingEnvironment.MapPath("~/App_Data/Mail") }; return(new MailSender(mailSenderConfiguration)); } } builder.Register(c => mailSenderFactory()) .AsSelf() .As <IMailSender>() .InstancePerDependency(); builder.RegisterType <BackgroundMarkdownMessageService>() .AsSelf() .As <IMessageService>() .InstancePerDependency(); }
internal MailSender(SmtpClient smtpClient, MailSenderConfiguration configuration) { if (smtpClient == null) { throw new ArgumentNullException("smtpClient"); } if (configuration != null) { ConfigureSmtpClient(smtpClient, configuration); } this._smtpClient = smtpClient; }
public bool TryGetConfiguration(IActivityMonitor activityMonitor, string key, out IAlertSenderConfiguration configuration) { configuration = null; switch (key) { case "Mail": configuration = _defaultMailSenderConfiguration ?? (_defaultMailSenderConfiguration = (MailSenderConfiguration) new MailSenderConfiguration().Default()); return(true); case "Http": configuration = _defaultHttpSenderConfiguration ?? (_defaultHttpSenderConfiguration = (HttpSenderConfiguration) new HttpSenderConfiguration().Default()); return(true); default: activityMonitor.Error($"Configuration key {key} is unknown."); return(false); } }
public void RegisterDependencies(IDependencyRegistry dependencyRegistry) { dependencyRegistry.RegisterCreator <IMailSender>(() => { var mailSenderConfiguration = new MailSenderConfiguration { DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory, PickupDirectoryLocation = HttpContext.Current.Server.MapPath("~/App_Data/Mail") }; //var mailSenderConfiguration = new MailSenderConfiguration() { // DeliveryMethod = SmtpDeliveryMethod.Network, // EnableSsl = true, // Host = "smtp.gmail.com", // Port = 587, // UseDefaultCredentials = false, // Credentials = new NetworkCredential("<your-gmail-address>", "<your-gmail-password>") //}; return(new MarkdownSharpMailSender(mailSenderConfiguration)); }); }
protected override void Load(ContainerBuilder builder) { var configuration = new ConfigurationService(); builder.RegisterInstance(configuration) .AsSelf() .As <PoliteCaptcha.IConfigurationSource>(); builder.Register(c => configuration.Current) .AsSelf() .As <IAppConfiguration>(); builder.RegisterInstance(LuceneCommon.GetDirectory(configuration.Current.LuceneIndexLocation)) .As <Lucene.Net.Store.Directory>() .SingleInstance(); ConfigureSearch(builder, configuration); if (!string.IsNullOrEmpty(configuration.Current.AzureStorageConnectionString)) { builder.RegisterInstance(new TableErrorLog(configuration.Current.AzureStorageConnectionString)) .As <ErrorLog>() .SingleInstance(); } else { builder.RegisterInstance(new SqlErrorLog(configuration.Current.SqlConnectionString)) .As <ErrorLog>() .SingleInstance(); } builder.RegisterType <HttpContextCacheService>() .AsSelf() .As <ICacheService>() .InstancePerLifetimeScope(); builder.RegisterType <ContentService>() .AsSelf() .As <IContentService>() .SingleInstance(); builder.Register(c => new EntitiesContext(configuration.Current.SqlConnectionString, readOnly: configuration.Current.ReadOnlyMode)) .AsSelf() .As <IEntitiesContext>() .As <DbContext>() .InstancePerLifetimeScope(); builder.RegisterType <EntityRepository <User> >() .AsSelf() .As <IEntityRepository <User> >() .InstancePerLifetimeScope(); builder.RegisterType <EntityRepository <CuratedFeed> >() .AsSelf() .As <IEntityRepository <CuratedFeed> >() .InstancePerLifetimeScope(); builder.RegisterType <EntityRepository <CuratedPackage> >() .AsSelf() .As <IEntityRepository <CuratedPackage> >() .InstancePerLifetimeScope(); builder.RegisterType <EntityRepository <PackageRegistration> >() .AsSelf() .As <IEntityRepository <PackageRegistration> >() .InstancePerLifetimeScope(); builder.RegisterType <EntityRepository <Package> >() .AsSelf() .As <IEntityRepository <Package> >() .InstancePerLifetimeScope(); builder.RegisterType <EntityRepository <PackageDependency> >() .AsSelf() .As <IEntityRepository <PackageDependency> >() .InstancePerLifetimeScope(); builder.RegisterType <EntityRepository <PackageStatistics> >() .AsSelf() .As <IEntityRepository <PackageStatistics> >() .InstancePerLifetimeScope(); builder.RegisterType <EntityRepository <PackageDelete> >() .AsSelf() .As <IEntityRepository <PackageDelete> >() .InstancePerLifetimeScope(); builder.RegisterType <EntityRepository <Credential> >() .AsSelf() .As <IEntityRepository <Credential> >() .InstancePerLifetimeScope(); builder.RegisterType <EntityRepository <PackageOwnerRequest> >() .AsSelf() .As <IEntityRepository <PackageOwnerRequest> >() .InstancePerLifetimeScope(); builder.RegisterType <CuratedFeedService>() .AsSelf() .As <ICuratedFeedService>() .InstancePerLifetimeScope(); builder.RegisterType <UserService>() .AsSelf() .As <IUserService>() .InstancePerLifetimeScope(); builder.RegisterType <PackageService>() .AsSelf() .As <IPackageService>() .InstancePerLifetimeScope(); builder.RegisterType <PackageDeleteService>() .AsSelf() .As <IPackageDeleteService>() .InstancePerLifetimeScope(); builder.RegisterType <EditPackageService>() .AsSelf() .InstancePerLifetimeScope(); builder.RegisterType <FormsAuthenticationService>() .As <IFormsAuthenticationService>() .InstancePerLifetimeScope(); builder.RegisterType <CookieTempDataProvider>() .As <ITempDataProvider>() .InstancePerLifetimeScope(); builder.RegisterType <NuGetExeDownloaderService>() .AsSelf() .As <INuGetExeDownloaderService>() .InstancePerLifetimeScope(); builder.RegisterType <StatusService>() .AsSelf() .As <IStatusService>() .InstancePerLifetimeScope(); var mailSenderThunk = new Lazy <IMailSender>( () => { var settings = configuration; if (settings.Current.SmtpUri != null && settings.Current.SmtpUri.IsAbsoluteUri) { var smtpUri = new SmtpUri(settings.Current.SmtpUri); var mailSenderConfiguration = new MailSenderConfiguration { DeliveryMethod = SmtpDeliveryMethod.Network, Host = smtpUri.Host, Port = smtpUri.Port, EnableSsl = smtpUri.Secure }; if (!string.IsNullOrWhiteSpace(smtpUri.UserName)) { mailSenderConfiguration.UseDefaultCredentials = false; mailSenderConfiguration.Credentials = new NetworkCredential( smtpUri.UserName, smtpUri.Password); } return(new MailSender(mailSenderConfiguration)); } else { var mailSenderConfiguration = new MailSenderConfiguration { DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory, PickupDirectoryLocation = HostingEnvironment.MapPath("~/App_Data/Mail") }; return(new MailSender(mailSenderConfiguration)); } }); builder.Register(c => mailSenderThunk.Value) .AsSelf() .As <IMailSender>() .InstancePerLifetimeScope(); builder.RegisterType <MessageService>() .AsSelf() .As <IMessageService>() .InstancePerLifetimeScope(); builder.Register(c => HttpContext.Current.User) .AsSelf() .As <IPrincipal>() .InstancePerLifetimeScope(); switch (configuration.Current.StorageType) { case StorageType.FileSystem: case StorageType.NotSpecified: ConfigureForLocalFileSystem(builder); break; case StorageType.AzureStorage: ConfigureForAzureStorage(builder, configuration); break; } builder.RegisterType <FileSystemService>() .AsSelf() .As <IFileSystemService>() .SingleInstance(); builder.RegisterType <PackageFileService>() .AsSelf() .As <IPackageFileService>() .InstancePerLifetimeScope(); builder.RegisterType <UploadFileService>() .AsSelf() .As <IUploadFileService>() .InstancePerLifetimeScope(); // todo: bind all package curators by convention builder.RegisterType <WebMatrixPackageCurator>() .AsSelf() .As <IAutomaticPackageCurator>() .InstancePerLifetimeScope(); builder.RegisterType <Windows8PackageCurator>() .AsSelf() .As <IAutomaticPackageCurator>() .InstancePerLifetimeScope(); // todo: bind all commands by convention builder.RegisterType <AutomaticallyCuratePackageCommand>() .AsSelf() .As <IAutomaticallyCuratePackageCommand>() .InstancePerLifetimeScope(); ConfigureAutocomplete(builder, configuration); builder.RegisterType <DiagnosticsService>() .AsSelf() .As <IDiagnosticsService>() .SingleInstance(); }
/// <summary> /// Loads the module into the kernel. /// </summary> public void RegisterComponents(Container container) { IConfiguration configuration = new Configuration(); container.Register(() => configuration, Lifestyle.Singleton); //var gallerySetting = new Lazy<GallerySetting>( // () => // { // using (var entitiesContext = new EntitiesContext()) // { // var settingsRepo = new EntityRepository<GallerySetting>(entitiesContext); // return settingsRepo.GetAll().FirstOrDefault(); // } // }); //container.Register(() => gallerySetting.Value); //Bind<GallerySetting>().ToMethod(c => gallerySetting.Value); if (configuration.UseCaching) { var cacheProvider = AppServices.Cache; Cache.InitializeWith(cacheProvider); container.Register(() => cacheProvider, Lifestyle.Singleton); } container.RegisterPerWebRequest <ISearchService, LuceneSearchService>(); container.RegisterPerWebRequest <IEntitiesContext>(() => new EntitiesContext()); container.RegisterPerWebRequest <IEntityRepository <User>, EntityRepository <User> >(); container.RegisterPerWebRequest <IEntityRepository <PackageRegistration>, EntityRepository <PackageRegistration> >(); container.RegisterPerWebRequest <IEntityRepository <Package>, EntityRepository <Package> >(); container.RegisterPerWebRequest <IEntityRepository <PackageAuthor>, EntityRepository <PackageAuthor> >(); container.RegisterPerWebRequest <IEntityRepository <PackageFramework>, EntityRepository <PackageFramework> >(); container.RegisterPerWebRequest <IEntityRepository <PackageDependency>, EntityRepository <PackageDependency> >(); container.RegisterPerWebRequest <IEntityRepository <PackageFile>, EntityRepository <PackageFile> >(); container.RegisterPerWebRequest <IEntityRepository <PackageStatistics>, EntityRepository <PackageStatistics> >(); container.RegisterPerWebRequest <IEntityRepository <PackageOwnerRequest>, EntityRepository <PackageOwnerRequest> >(); container.RegisterPerWebRequest <IUserService, UserService>(); container.RegisterPerWebRequest <IPackageService, PackageService>(); container.RegisterPerWebRequest <ICryptographyService, CryptographyService>(); container.Register <IIndexingService, LuceneIndexingService>(Lifestyle.Singleton); container.Register <IFormsAuthenticationService, FormsAuthenticationService>(Lifestyle.Singleton); container.RegisterPerWebRequest <IControllerFactory, NuGetControllerFactory>(); container.RegisterPerWebRequest <INuGetExeDownloaderService, NuGetExeDownloaderService>(); var mailSenderThunk = new Lazy <IMailSender>( () => { var settings = container.GetInstance <IConfiguration>(); if (settings.UseSmtp) { var mailSenderConfiguration = new MailSenderConfiguration { DeliveryMethod = SmtpDeliveryMethod.Network, Host = settings.SmtpHost, Port = settings.SmtpPort, EnableSsl = configuration.SmtpEnableSsl, }; if (!String.IsNullOrWhiteSpace(settings.SmtpUsername)) { mailSenderConfiguration.UseDefaultCredentials = false; mailSenderConfiguration.Credentials = new NetworkCredential(settings.SmtpUsername, settings.SmtpPassword); } return(new MailSender(mailSenderConfiguration)); } else { var mailSenderConfiguration = new MailSenderConfiguration { DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory, PickupDirectoryLocation = HostingEnvironment.MapPath("~/App_Data/Mail") }; return(new MailSender(mailSenderConfiguration)); } }); container.Register(() => mailSenderThunk.Value, Lifestyle.Singleton); container.Register <IMessageService, MessageService>(Lifestyle.Singleton); container.Register <IFileSystemService, FileSystemService>(Lifestyle.Singleton); container.RegisterPerWebRequest(() => HttpContext.Current.User); //Bind<IPrincipal>().ToMethod(context => HttpContext.Current.User); switch (configuration.PackageStoreType) { case PackageStoreType.FileSystem: case PackageStoreType.NotSpecified: container.Register <IFileStorageService, FileSystemFileStorageService>(Lifestyle.Singleton); break; case PackageStoreType.AzureStorageBlob: container.Register <ICloudBlobClient>( () => new CloudBlobClientWrapper( new CloudBlobClient( new Uri(configuration.AzureStorageBlobUrl, UriKind.Absolute), new StorageCredentialsAccountAndKey(configuration.AzureStorageAccountName, configuration.AzureStorageAccessKey))), Lifestyle.Singleton); container.Register <IFileStorageService, CloudBlobFileStorageService>(Lifestyle.Singleton); break; case PackageStoreType.AmazonS3Storage: container.Register <IAmazonS3Client, AmazonS3ClientWrapper>(Lifestyle.Singleton); container.Register <IFileStorageService, AmazonS3FileStorageService>(Lifestyle.Singleton); break; } switch (configuration.PackageStatisticsStoreType) { case PackageStatisticsStoreType.AmazonSqs: container.Register <IAmazonSqsClient, AmazonSqsClientWrapper>(Lifestyle.Singleton); container.Register <IPackageStatisticsService, AmazonSqsPackageStatisticsService>(Lifestyle.Singleton); break; default: container.RegisterPerWebRequest <IPackageStatisticsService, DatabasePackageStatisticsService>(); break; } container.Register <IPackageFileService, PackageFileService>(Lifestyle.Singleton); container.Register <IUploadFileService, UploadFileService>(); // todo: bind all package curators by convention container.Register <IAutomaticPackageCurator, WebMatrixPackageCurator>(Lifestyle.Singleton); container.Register <IAutomaticPackageCurator, Windows8PackageCurator>(Lifestyle.Singleton); // todo: bind all commands by convention container.RegisterPerWebRequest <IAutomaticallyCuratePackageCommand, AutomaticallyCuratePackageCommand>(); container.RegisterPerWebRequest <ICreateCuratedPackageCommand, CreateCuratedPackageCommand>(); container.RegisterPerWebRequest <IDeleteCuratedPackageCommand, DeleteCuratedPackageCommand>(); container.RegisterPerWebRequest <IModifyCuratedPackageCommand, ModifyCuratedPackageCommand>(); // todo: bind all queries by convention container.RegisterPerWebRequest <ICuratedFeedByKeyQuery, CuratedFeedByKeyQuery>(); container.RegisterPerWebRequest <ICuratedFeedByNameQuery, CuratedFeedByNameQuery>(); container.RegisterPerWebRequest <ICuratedFeedsByManagerQuery, CuratedFeedsByManagerQuery>(); container.RegisterPerWebRequest <IPackageRegistrationByKeyQuery, PackageRegistrationByKeyQuery>(); container.RegisterPerWebRequest <IPackageRegistrationByIdQuery, PackageRegistrationByIdQuery>(); container.RegisterPerWebRequest <IUserByUsernameQuery, UserByUsernameQuery>(); container.RegisterPerWebRequest <IPackageIdsQuery, PackageIdsQuery>(); container.RegisterPerWebRequest <IPackageVersionsQuery, PackageVersionsQuery>(); container.RegisterPerWebRequest <IAggregateStatsService, AggregateStatsService>(); RegisterChocolateySpecific(container); }
protected override void Load(ContainerBuilder builder) { var telemetryClient = TelemetryClientWrapper.Instance; builder.RegisterInstance(telemetryClient) .AsSelf() .As <ITelemetryClient>() .SingleInstance(); var diagnosticsService = new DiagnosticsService(telemetryClient); builder.RegisterInstance(diagnosticsService) .AsSelf() .As <IDiagnosticsService>() .SingleInstance(); var configuration = new ConfigurationService(new SecretReaderFactory(diagnosticsService)); UrlExtensions.SetConfigurationService(configuration); builder.RegisterInstance(configuration) .AsSelf() .As <PoliteCaptcha.IConfigurationSource>(); builder.RegisterInstance(configuration) .AsSelf() .As <IGalleryConfigurationService>(); builder.Register(c => configuration.Current) .AsSelf() .As <IAppConfiguration>(); // Force the read of this configuration, so it will be initialized on startup builder.Register(c => configuration.Features) .AsSelf() .As <FeatureConfiguration>(); builder.Register(c => configuration.PackageDelete) .As <IPackageDeleteConfiguration>(); builder.RegisterType <TelemetryService>().As <ITelemetryService>().SingleInstance(); builder.RegisterType <CredentialBuilder>().As <ICredentialBuilder>().SingleInstance(); builder.RegisterType <CredentialValidator>().As <ICredentialValidator>().SingleInstance(); builder.RegisterInstance(LuceneCommon.GetDirectory(configuration.Current.LuceneIndexLocation)) .As <Lucene.Net.Store.Directory>() .SingleInstance(); ConfigureSearch(builder, configuration); builder.RegisterType <DateTimeProvider>().AsSelf().As <IDateTimeProvider>().SingleInstance(); builder.RegisterType <HttpContextCacheService>() .AsSelf() .As <ICacheService>() .InstancePerLifetimeScope(); builder.Register(c => new EntitiesContext(configuration.Current.SqlConnectionString, readOnly: configuration.Current.ReadOnlyMode)) .AsSelf() .As <IEntitiesContext>() .As <DbContext>() .InstancePerLifetimeScope(); builder.RegisterType <EntityRepository <User> >() .AsSelf() .As <IEntityRepository <User> >() .InstancePerLifetimeScope(); builder.RegisterType <EntityRepository <ReservedNamespace> >() .AsSelf() .As <IEntityRepository <ReservedNamespace> >() .InstancePerLifetimeScope(); builder.RegisterType <EntityRepository <CuratedFeed> >() .AsSelf() .As <IEntityRepository <CuratedFeed> >() .InstancePerLifetimeScope(); builder.RegisterType <EntityRepository <CuratedPackage> >() .AsSelf() .As <IEntityRepository <CuratedPackage> >() .InstancePerLifetimeScope(); builder.RegisterType <EntityRepository <PackageRegistration> >() .AsSelf() .As <IEntityRepository <PackageRegistration> >() .InstancePerLifetimeScope(); builder.RegisterType <EntityRepository <Package> >() .AsSelf() .As <IEntityRepository <Package> >() .InstancePerLifetimeScope(); builder.RegisterType <EntityRepository <PackageDependency> >() .AsSelf() .As <IEntityRepository <PackageDependency> >() .InstancePerLifetimeScope(); builder.RegisterType <EntityRepository <PackageDelete> >() .AsSelf() .As <IEntityRepository <PackageDelete> >() .InstancePerLifetimeScope(); builder.RegisterType <EntityRepository <AccountDelete> >() .AsSelf() .As <IEntityRepository <AccountDelete> >() .InstancePerLifetimeScope(); builder.RegisterType <EntityRepository <Credential> >() .AsSelf() .As <IEntityRepository <Credential> >() .InstancePerLifetimeScope(); builder.RegisterType <EntityRepository <PackageOwnerRequest> >() .AsSelf() .As <IEntityRepository <PackageOwnerRequest> >() .InstancePerLifetimeScope(); builder.RegisterType <CuratedFeedService>() .AsSelf() .As <ICuratedFeedService>() .InstancePerLifetimeScope(); builder.Register(c => new SupportRequestDbContext(configuration.Current.SqlConnectionStringSupportRequest)) .AsSelf() .As <ISupportRequestDbContext>() .InstancePerLifetimeScope(); builder.RegisterType <SupportRequestService>() .AsSelf() .As <ISupportRequestService>() .InstancePerLifetimeScope(); builder.RegisterType <UserService>() .AsSelf() .As <IUserService>() .InstancePerLifetimeScope(); builder.RegisterType <PackageNamingConflictValidator>() .AsSelf() .As <IPackageNamingConflictValidator>() .InstancePerLifetimeScope(); builder.RegisterType <PackageService>() .AsSelf() .As <IPackageService>() .InstancePerLifetimeScope(); builder.RegisterType <PackageDeleteService>() .AsSelf() .As <IPackageDeleteService>() .InstancePerLifetimeScope(); builder.RegisterType <DeleteAccountService>() .AsSelf() .As <IDeleteAccountService>() .InstancePerLifetimeScope(); builder.RegisterType <PackageOwnerRequestService>() .AsSelf() .As <IPackageOwnerRequestService>() .InstancePerLifetimeScope(); builder.RegisterType <FormsAuthenticationService>() .As <IFormsAuthenticationService>() .InstancePerLifetimeScope(); builder.RegisterType <CookieTempDataProvider>() .As <ITempDataProvider>() .InstancePerLifetimeScope(); builder.RegisterType <StatusService>() .AsSelf() .As <IStatusService>() .InstancePerLifetimeScope(); builder.RegisterType <SecurityPolicyService>() .AsSelf() .As <ISecurityPolicyService>() .InstancePerLifetimeScope(); builder.RegisterType <ReservedNamespaceService>() .AsSelf() .As <IReservedNamespaceService>() .InstancePerLifetimeScope(); builder.RegisterType <PackageUploadService>() .AsSelf() .As <IPackageUploadService>() .InstancePerLifetimeScope(); builder.RegisterType <PackageOwnershipManagementService>() .AsSelf() .As <IPackageOwnershipManagementService>() .InstancePerLifetimeScope(); builder.RegisterType <ValidationService>() .AsSelf() .As <IValidationService>() .InstancePerLifetimeScope(); builder.RegisterType <ReadMeService>() .AsSelf() .As <IReadMeService>() .InstancePerLifetimeScope(); builder.RegisterType <ApiScopeEvaluator>() .AsSelf() .As <IApiScopeEvaluator>() .InstancePerLifetimeScope(); builder.RegisterType <SecurePushSubscription>() .SingleInstance(); builder.RegisterType <RequireSecurePushForCoOwnersPolicy>() .SingleInstance(); var mailSenderThunk = new Lazy <IMailSender>( () => { var settings = configuration; if (settings.Current.SmtpUri != null && settings.Current.SmtpUri.IsAbsoluteUri) { var smtpUri = new SmtpUri(settings.Current.SmtpUri); var mailSenderConfiguration = new MailSenderConfiguration { DeliveryMethod = SmtpDeliveryMethod.Network, Host = smtpUri.Host, Port = smtpUri.Port, EnableSsl = smtpUri.Secure }; if (!string.IsNullOrWhiteSpace(smtpUri.UserName)) { mailSenderConfiguration.UseDefaultCredentials = false; mailSenderConfiguration.Credentials = new NetworkCredential( smtpUri.UserName, smtpUri.Password); } return(new MailSender(mailSenderConfiguration)); } else { var mailSenderConfiguration = new MailSenderConfiguration { DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory, PickupDirectoryLocation = HostingEnvironment.MapPath("~/App_Data/Mail") }; return(new MailSender(mailSenderConfiguration)); } }); builder.Register(c => mailSenderThunk.Value) .AsSelf() .As <IMailSender>() .InstancePerLifetimeScope(); builder.RegisterType <MessageService>() .AsSelf() .As <IMessageService>() .InstancePerLifetimeScope(); builder.Register(c => HttpContext.Current.User) .AsSelf() .As <IPrincipal>() .InstancePerLifetimeScope(); IAuditingService defaultAuditingService = null; switch (configuration.Current.StorageType) { case StorageType.FileSystem: case StorageType.NotSpecified: ConfigureForLocalFileSystem(builder, configuration); defaultAuditingService = GetAuditingServiceForLocalFileSystem(configuration); break; case StorageType.AzureStorage: ConfigureForAzureStorage(builder, configuration, telemetryClient); defaultAuditingService = GetAuditingServiceForAzureStorage(builder, configuration); break; } RegisterAsynchronousValidation(builder, configuration); RegisterAuditingServices(builder, defaultAuditingService); RegisterCookieComplianceService(builder, configuration, diagnosticsService); // todo: bind all package curators by convention builder.RegisterType <WebMatrixPackageCurator>() .AsSelf() .As <IAutomaticPackageCurator>() .InstancePerLifetimeScope(); builder.RegisterType <Windows8PackageCurator>() .AsSelf() .As <IAutomaticPackageCurator>() .InstancePerLifetimeScope(); // todo: bind all commands by convention builder.RegisterType <AutomaticallyCuratePackageCommand>() .AsSelf() .As <IAutomaticallyCuratePackageCommand>() .InstancePerLifetimeScope(); if (configuration.Current.Environment == Constants.DevelopmentEnvironment) { builder.RegisterType <AllowLocalHttpRedirectPolicy>() .As <ISourceDestinationRedirectPolicy>() .InstancePerLifetimeScope(); } else { builder.RegisterType <NoLessSecureDestinationRedirectPolicy>() .As <ISourceDestinationRedirectPolicy>() .InstancePerLifetimeScope(); } ConfigureAutocomplete(builder, configuration); }
public override void Load() { var configuration = new ConfigurationService(); Bind <ConfigurationService>().ToMethod(context => configuration); Bind <IAppConfiguration>().ToMethod(context => configuration.Current); Bind <IConfigurationSource>().ToMethod(context => configuration); Bind <AuditingService>().ToConstant(AuditingService.None); Bind <ErrorLog>() .ToMethod(_ => new SqlErrorLog(configuration.Current.SqlConnectionString)) .InSingletonScope(); Bind <ICacheService>().To <HttpContextCacheService>().InRequestScope(); Bind <ICustomerService>().To <CustomerService>().InRequestScope(); Bind <IProductService>().To <ProductService>().InRequestScope(); Bind <IUserService>().To <UserService>().InRequestScope(); Bind <IControllerFactory>() .To <CustomControllerFactory>() .InRequestScope(); var mailSenderThunk = new Lazy <IMailSender>( () => { var settings = Kernel.Get <ConfigurationService>(); if (settings.Current.SmtpUri != null && settings.Current.SmtpUri.IsAbsoluteUri) { var smtpUri = new SmtpUri(settings.Current.SmtpUri); var mailSenderConfiguration = new MailSenderConfiguration { DeliveryMethod = SmtpDeliveryMethod.Network, Host = smtpUri.Host, Port = smtpUri.Port, EnableSsl = smtpUri.Secure }; if (!String.IsNullOrWhiteSpace(smtpUri.UserName)) { mailSenderConfiguration.UseDefaultCredentials = false; mailSenderConfiguration.Credentials = new NetworkCredential( smtpUri.UserName, smtpUri.Password); } return(new MailSender(mailSenderConfiguration)); } else { var mailSenderConfiguration = new MailSenderConfiguration { DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory, PickupDirectoryLocation = HostingEnvironment.MapPath("~/App_Data/Mail") }; return(new MailSender(mailSenderConfiguration)); } }); Bind <IMailSender>().ToMethod(context => mailSenderThunk.Value); Bind <IMessageService>().To <MessageService>(); Bind <IPrincipal>().ToMethod(context => HttpContext.Current.User); // ViewModel bindings Bind <INewLicenseViewModel>().To <CustomerSelectionViewModel>(); Bind <INewLicenseViewModel>().To <FeatureSelectionViewModel>(); Bind <INewLicenseViewModel>().To <LicenseExpirationViewModel>(); //Bind<INewLicenseViewModel>().To<ProductNameSelectionViewModel>(); }
public override void Load() { IConfiguration configuration = new Configuration(); Bind <IConfiguration>() .ToMethod(context => configuration); Lazy <GallerySetting> gallerySetting = new Lazy <GallerySetting>(() => { using (var entitiesContext = new EntitiesContext()) { var settingsRepo = new EntityRepository <GallerySetting>(entitiesContext); return(settingsRepo.GetAll().FirstOrDefault()); } }); Bind <GallerySetting>().ToMethod(c => gallerySetting.Value); Bind <EntitiesContext>() .ToMethod(context => new EntitiesContext()) .InRequestScope(); Bind <IEntityRepository <User> >() .To <EntityRepository <User> >() .InRequestScope(); Bind <IEntityRepository <PackageRegistration> >() .To <EntityRepository <PackageRegistration> >() .InRequestScope(); Bind <IEntityRepository <Package> >() .To <EntityRepository <Package> >() .InRequestScope(); Bind <IEntityRepository <PackageAuthor> >() .To <EntityRepository <PackageAuthor> >() .InRequestScope(); Bind <IEntityRepository <PackageDependency> >() .To <EntityRepository <PackageDependency> >() .InRequestScope(); Bind <IEntityRepository <PackageStatistics> >() .To <EntityRepository <PackageStatistics> >() .InRequestScope(); Bind <IUserService>() .To <UserService>() .InRequestScope(); Bind <IPackageService>() .To <PackageService>() .InRequestScope(); Bind <ICryptographyService>() .To <CryptographyService>() .InRequestScope(); Bind <IFormsAuthenticationService>() .To <FormsAuthenticationService>() .InSingletonScope(); Bind <IControllerFactory>() .To <NuGetControllerFactory>() .InRequestScope(); Lazy <IMailSender> mailSenderThunk = new Lazy <IMailSender>(() => { var settings = Kernel.Get <GallerySetting>(); if (settings.UseSmtp) { var mailSenderConfiguration = new MailSenderConfiguration() { DeliveryMethod = SmtpDeliveryMethod.Network, Host = settings.SmtpHost, Port = settings.SmtpPort, EnableSsl = true, UseDefaultCredentials = false, Credentials = new NetworkCredential( settings.SmtpUsername, settings.SmtpPassword) }; return(new MailSender(mailSenderConfiguration)); } else { var mailSenderConfiguration = new MailSenderConfiguration() { DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory, PickupDirectoryLocation = HostingEnvironment.MapPath("~/App_Data/Mail") }; return(new MailSender(mailSenderConfiguration)); } }); Bind <IMailSender>() .ToMethod(context => mailSenderThunk.Value); Bind <IMessageService>() .To <MessageService>(); Bind <IPrincipal>().ToMethod(context => HttpContext.Current.User); switch (configuration.PackageStoreType) { case PackageStoreType.FileSystem: case PackageStoreType.NotSpecified: Bind <IFileSystemService>() .To <FileSystemService>() .InSingletonScope(); Bind <IFileStorageService>() .To <FileSystemFileStorageService>() .InSingletonScope(); break; case PackageStoreType.AzureStorageBlob: Bind <ICloudBlobClient>() .ToMethod(context => new CloudBlobClientWrapper(new CloudBlobClient( new Uri(configuration.AzureStorageBlobUrl, UriKind.Absolute), new StorageCredentialsAccountAndKey(configuration.AzureStorageAccountName, configuration.AzureStorageAccessKey)))) .InSingletonScope(); Bind <IFileStorageService>() .To <CloudBlobFileStorageService>() .InSingletonScope(); break; } Bind <IPackageFileService>() .To <PackageFileService>(); Bind <IEntityRepository <PackageOwnerRequest> >() .To <EntityRepository <PackageOwnerRequest> >() .InRequestScope(); Bind <IUploadFileService>() .To <UploadFileService>(); }
public override void Load() { var configuration = new ConfigurationService(); Bind <ConfigurationService>() .ToMethod(context => configuration); Bind <IAppConfiguration>() .ToMethod(context => configuration.Current); Bind <PoliteCaptcha.IConfigurationSource>() .ToMethod(context => configuration); Bind <Lucene.Net.Store.Directory>() .ToMethod(_ => LuceneCommon.GetDirectory(configuration.Current.LuceneIndexLocation)) .InSingletonScope(); ConfigureSearch(configuration); if (!String.IsNullOrEmpty(configuration.Current.AzureStorageConnectionString)) { Bind <ErrorLog>() .ToMethod(_ => new TableErrorLog(configuration.Current.AzureStorageConnectionString)) .InSingletonScope(); } else { Bind <ErrorLog>() .ToMethod(_ => new SqlErrorLog(configuration.Current.SqlConnectionString)) .InSingletonScope(); } Bind <ICacheService>() .To <HttpContextCacheService>() .InRequestScope(); Bind <IContentService>() .To <ContentService>() .InSingletonScope(); Bind <IEntitiesContext>() .ToMethod(context => new EntitiesContext(configuration.Current.SqlConnectionString, readOnly: configuration.Current.ReadOnlyMode)) .InRequestScope(); Bind <IEntityRepository <User> >() .To <EntityRepository <User> >() .InRequestScope(); Bind <IEntityRepository <CuratedFeed> >() .To <EntityRepository <CuratedFeed> >() .InRequestScope(); Bind <IEntityRepository <CuratedPackage> >() .To <EntityRepository <CuratedPackage> >() .InRequestScope(); Bind <IEntityRepository <PackageRegistration> >() .To <EntityRepository <PackageRegistration> >() .InRequestScope(); Bind <IEntityRepository <Package> >() .To <EntityRepository <Package> >() .InRequestScope(); Bind <IEntityRepository <PackageDependency> >() .To <EntityRepository <PackageDependency> >() .InRequestScope(); Bind <IEntityRepository <PackageStatistics> >() .To <EntityRepository <PackageStatistics> >() .InRequestScope(); Bind <IEntityRepository <Credential> >() .To <EntityRepository <Credential> >() .InRequestScope(); Bind <ICuratedFeedService>() .To <CuratedFeedService>() .InRequestScope(); Bind <IUserService>() .To <UserService>() .InRequestScope(); Bind <IPackageService>() .To <PackageService>() .InRequestScope(); Bind <EditPackageService>().ToSelf(); Bind <IFormsAuthenticationService>() .To <FormsAuthenticationService>() .InSingletonScope(); Bind <IControllerFactory>() .To <NuGetControllerFactory>() .InRequestScope(); Bind <INuGetExeDownloaderService>() .To <NuGetExeDownloaderService>() .InRequestScope(); Bind <IStatusService>() .To <StatusService>() .InRequestScope(); var mailSenderThunk = new Lazy <IMailSender>( () => { var settings = Kernel.Get <ConfigurationService>(); if (settings.Current.SmtpUri != null && settings.Current.SmtpUri.IsAbsoluteUri) { var smtpUri = new SmtpUri(settings.Current.SmtpUri); var mailSenderConfiguration = new MailSenderConfiguration { DeliveryMethod = SmtpDeliveryMethod.Network, Host = smtpUri.Host, Port = smtpUri.Port, EnableSsl = smtpUri.Secure }; if (!String.IsNullOrWhiteSpace(smtpUri.UserName)) { mailSenderConfiguration.UseDefaultCredentials = false; mailSenderConfiguration.Credentials = new NetworkCredential( smtpUri.UserName, smtpUri.Password); } return(new MailSender(mailSenderConfiguration)); } else { var mailSenderConfiguration = new MailSenderConfiguration { DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory, PickupDirectoryLocation = HostingEnvironment.MapPath("~/App_Data/Mail") }; return(new MailSender(mailSenderConfiguration)); } }); Bind <IMailSender>() .ToMethod(context => mailSenderThunk.Value); Bind <IMessageService>() .To <MessageService>(); Bind <IPrincipal>().ToMethod(context => HttpContext.Current.User); switch (configuration.Current.StorageType) { case StorageType.FileSystem: case StorageType.NotSpecified: ConfigureForLocalFileSystem(); break; case StorageType.AzureStorage: ConfigureForAzureStorage(configuration); break; } Bind <IFileSystemService>() .To <FileSystemService>() .InSingletonScope(); Bind <IPackageFileService>() .To <PackageFileService>(); Bind <IEntityRepository <PackageOwnerRequest> >() .To <EntityRepository <PackageOwnerRequest> >() .InRequestScope(); Bind <IUploadFileService>() .To <UploadFileService>(); // todo: bind all package curators by convention Bind <IAutomaticPackageCurator>() .To <WebMatrixPackageCurator>(); Bind <IAutomaticPackageCurator>() .To <Windows8PackageCurator>(); // todo: bind all commands by convention Bind <IAutomaticallyCuratePackageCommand>() .To <AutomaticallyCuratePackageCommand>() .InRequestScope(); Bind <IPackageIdsQuery>() .To <PackageIdsQuery>() .InRequestScope(); Bind <IPackageVersionsQuery>() .To <PackageVersionsQuery>() .InRequestScope(); }
public override void Load() { var configuration = new Configuration(); Bind <IConfiguration>() .ToMethod(context => configuration); Bind <PoliteCaptcha.IConfigurationSource>() .ToMethod(context => Configuration.GetPoliteCaptchaConfiguration()); Bind <Lucene.Net.Store.Directory>() .ToMethod(_ => LuceneCommon.GetDirectory()) .InSingletonScope(); Bind <ISearchService>() .To <LuceneSearchService>() .InRequestScope(); if (!String.IsNullOrEmpty(configuration.AzureDiagnosticsConnectionString)) { Bind <ErrorLog>() .ToMethod(_ => new TableErrorLog(configuration.AzureDiagnosticsConnectionString)) .InSingletonScope(); } else { Bind <ErrorLog>() .ToMethod(_ => new SqlErrorLog(configuration.SqlConnectionString)) .InSingletonScope(); } if (IsDeployedToCloud) { // when running on Windows Azure, use the Azure Cache service if available if (!String.IsNullOrEmpty(configuration.AzureCacheEndpoint)) { Bind <ICacheService>() .To <CloudCacheService>() .InSingletonScope(); } else { Bind <ICacheService>() .To <HttpContextCacheService>() .InRequestScope(); } // when running on Windows Azure, pull the statistics from the warehouse via storage Bind <IReportService>() .ToMethod(context => new CloudReportService(configuration.AzureStatisticsConnectionString)) .InSingletonScope(); Bind <IStatisticsService>() .To <JsonStatisticsService>() .InSingletonScope(); } else { // when running locally on dev box, use the built-in ASP.NET Http Cache Bind <ICacheService>() .To <HttpContextCacheService>() .InRequestScope(); } Bind <IEntitiesContext>() .ToMethod(context => new EntitiesContext(configuration.SqlConnectionString, readOnly: configuration.ReadOnlyMode)) .InRequestScope(); Bind <IEntityRepository <User> >() .To <EntityRepository <User> >() .InRequestScope(); Bind <IEntityRepository <CuratedFeed> >() .To <EntityRepository <CuratedFeed> >() .InRequestScope(); Bind <IEntityRepository <CuratedPackage> >() .To <EntityRepository <CuratedPackage> >() .InRequestScope(); Bind <IEntityRepository <PackageRegistration> >() .To <EntityRepository <PackageRegistration> >() .InRequestScope(); Bind <IEntityRepository <Package> >() .To <EntityRepository <Package> >() .InRequestScope(); Bind <IEntityRepository <PackageAuthor> >() .To <EntityRepository <PackageAuthor> >() .InRequestScope(); Bind <IEntityRepository <PackageDependency> >() .To <EntityRepository <PackageDependency> >() .InRequestScope(); Bind <IEntityRepository <PackageStatistics> >() .To <EntityRepository <PackageStatistics> >() .InRequestScope(); Bind <ICuratedFeedService>() .To <CuratedFeedService>() .InRequestScope(); Bind <IUserService>() .To <UserService>() .InRequestScope(); //modified by fwang5 2013/5/15 Bind <ILdapService>() .To <LdapService>() .InRequestScope(); Bind <IPackageSource>() .To <PackageSource>() .InRequestScope(); Bind <IPackageService>() .To <PackageService>() .InRequestScope(); Bind <ICryptographyService>() .To <CryptographyService>() .InRequestScope(); Bind <IFormsAuthenticationService>() .To <FormsAuthenticationService>() .InSingletonScope(); Bind <IControllerFactory>() .To <NuGetControllerFactory>() .InRequestScope(); Bind <IIndexingService>() .To <LuceneIndexingService>() .InRequestScope(); Bind <INuGetExeDownloaderService>() .To <NuGetExeDownloaderService>() .InRequestScope(); var mailSenderThunk = new Lazy <IMailSender>( () => { var settings = Kernel.Get <IConfiguration>(); if (settings.UseSmtp) { var mailSenderConfiguration = new MailSenderConfiguration { DeliveryMethod = SmtpDeliveryMethod.Network, Host = settings.SmtpHost, Port = settings.SmtpPort, //modified by fwang5 2013/5/15 EnableSsl = false }; if (!String.IsNullOrWhiteSpace(settings.SmtpUsername)) { mailSenderConfiguration.UseDefaultCredentials = false; mailSenderConfiguration.Credentials = new NetworkCredential( settings.SmtpUsername, settings.SmtpPassword); } return(new MailSender(mailSenderConfiguration)); } else { var mailSenderConfiguration = new MailSenderConfiguration { DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory, PickupDirectoryLocation = HostingEnvironment.MapPath("~/App_Data/Mail") }; return(new MailSender(mailSenderConfiguration)); } }); Bind <IMailSender>() .ToMethod(context => mailSenderThunk.Value); Bind <IMessageService>() .To <MessageService>(); Bind <IPrincipal>().ToMethod(context => HttpContext.Current.User); switch (configuration.PackageStoreType) { case PackageStoreType.FileSystem: case PackageStoreType.NotSpecified: Bind <IFileStorageService>() .To <FileSystemFileStorageService>() .InSingletonScope(); break; case PackageStoreType.AzureStorageBlob: Bind <ICloudBlobClient>() .ToMethod( _ => new CloudBlobClientWrapper(configuration.AzureStorageConnectionString)) .InSingletonScope(); Bind <IFileStorageService>() .To <CloudBlobFileStorageService>() .InSingletonScope(); break; } Bind <IFileSystemService>() .To <FileSystemService>() .InSingletonScope(); Bind <IPackageFileService>() .To <PackageFileService>(); Bind <IEntityRepository <PackageOwnerRequest> >() .To <EntityRepository <PackageOwnerRequest> >() .InRequestScope(); Bind <IUploadFileService>() .To <UploadFileService>(); // todo: bind all package curators by convention Bind <IAutomaticPackageCurator>() .To <WebMatrixPackageCurator>(); Bind <IAutomaticPackageCurator>() .To <Windows8PackageCurator>(); // todo: bind all commands by convention Bind <IAutomaticallyCuratePackageCommand>() .To <AutomaticallyCuratePackageCommand>() .InRequestScope(); Bind <ICreateCuratedPackageCommand>() .To <CreateCuratedPackageCommand>() .InRequestScope(); Bind <IDeleteCuratedPackageCommand>() .To <DeleteCuratedPackageCommand>() .InRequestScope(); Bind <IModifyCuratedPackageCommand>() .To <ModifyCuratedPackageCommand>() .InRequestScope(); // todo: bind all queries by convention Bind <ICuratedFeedByKeyQuery>() .To <CuratedFeedByKeyQuery>() .InRequestScope(); Bind <ICuratedFeedByNameQuery>() .To <CuratedFeedByNameQuery>() .InRequestScope(); Bind <ICuratedFeedsByManagerQuery>() .To <CuratedFeedsByManagerQuery>() .InRequestScope(); Bind <IPackageRegistrationByKeyQuery>() .To <PackageRegistrationByKeyQuery>() .InRequestScope(); Bind <IPackageRegistrationByIdQuery>() .To <PackageRegistrationByIdQuery>() .InRequestScope(); Bind <IAggregateStatsService>() .To <AggregateStatsService>() .InRequestScope(); Bind <IPackageIdsQuery>() .To <PackageIdsQuery>() .InRequestScope(); Bind <IPackageVersionsQuery>() .To <PackageVersionsQuery>() .InRequestScope(); }
public MailSender(MailSenderConfiguration configuration) : this(new SmtpClient(), configuration) { }
public override void Load() { IConfiguration configuration = new Configuration(); Bind <IConfiguration>() .ToMethod(context => configuration); Lazy <GallerySetting> gallerySetting = new Lazy <GallerySetting>(() => { using (var entitiesContext = new EntitiesContext()) { var settingsRepo = new EntityRepository <GallerySetting>(entitiesContext); return(settingsRepo.GetAll().FirstOrDefault()); } }); Bind <GallerySetting>().ToMethod(c => gallerySetting.Value); Bind <ISearchService>() .To <LuceneSearchService>() .InRequestScope(); Bind <IEntitiesContext>() .ToMethod(context => new EntitiesContext()) .InRequestScope(); Bind <IEntityRepository <User> >() .To <EntityRepository <User> >() .InRequestScope(); Bind <IEntityRepository <PackageRegistration> >() .To <EntityRepository <PackageRegistration> >() .InRequestScope(); Bind <IEntityRepository <Package> >() .To <EntityRepository <Package> >() .InRequestScope(); Bind <IEntityRepository <PackageAuthor> >() .To <EntityRepository <PackageAuthor> >() .InRequestScope(); Bind <IEntityRepository <PackageDependency> >() .To <EntityRepository <PackageDependency> >() .InRequestScope(); Bind <IEntityRepository <PackageStatistics> >() .To <EntityRepository <PackageStatistics> >() .InRequestScope(); Bind <IUserService>() .To <UserService>() .InRequestScope(); Bind <IPackageService>() .To <PackageService>() .InRequestScope(); Bind <ICryptographyService>() .To <CryptographyService>() .InRequestScope(); Bind <IFormsAuthenticationService>() .To <FormsAuthenticationService>() .InSingletonScope(); Bind <IControllerFactory>() .To <NuGetControllerFactory>() .InRequestScope(); Bind <IIndexingService>() .To <LuceneIndexingService>() .InRequestScope(); Bind <INuGetExeDownloaderService>() .To <NuGetExeDownloaderService>() .InRequestScope(); Lazy <IMailSender> mailSenderThunk = new Lazy <IMailSender>(() => { var settings = Kernel.Get <GallerySetting>(); if (settings.UseSmtp) { var mailSenderConfiguration = new MailSenderConfiguration() { DeliveryMethod = SmtpDeliveryMethod.Network, Host = settings.SmtpHost, Port = settings.SmtpPort, EnableSsl = configuration.SmtpEnableSsl, }; if (!String.IsNullOrWhiteSpace(settings.SmtpUsername)) { mailSenderConfiguration.UseDefaultCredentials = false; mailSenderConfiguration.Credentials = new NetworkCredential( settings.SmtpUsername, settings.SmtpPassword); } return(new MailSender(mailSenderConfiguration)); } else { var mailSenderConfiguration = new MailSenderConfiguration() { DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory, PickupDirectoryLocation = HostingEnvironment.MapPath("~/App_Data/Mail") }; return(new MailSender(mailSenderConfiguration)); } }); Bind <IMailSender>() .ToMethod(context => mailSenderThunk.Value); Bind <IMessageService>() .To <MessageService>(); Bind <IPrincipal>().ToMethod(context => HttpContext.Current.User); switch (configuration.PackageStoreType) { case PackageStoreType.FileSystem: case PackageStoreType.NotSpecified: Bind <IFileSystemService>() .To <FileSystemService>() .InSingletonScope(); Bind <IFileStorageService>() .To <FileSystemFileStorageService>() .InSingletonScope(); break; case PackageStoreType.AzureStorageBlob: Bind <ICloudBlobClient>() .ToMethod(context => new CloudBlobClientWrapper(new CloudBlobClient( new Uri(configuration.AzureStorageBlobUrl, UriKind.Absolute), new StorageCredentialsAccountAndKey(configuration.AzureStorageAccountName, configuration.AzureStorageAccessKey)))) .InSingletonScope(); Bind <IFileStorageService>() .To <CloudBlobFileStorageService>() .InSingletonScope(); break; case PackageStoreType.AmazonS3Storage: Bind <IAmazonS3Client>() .To <AmazonS3ClientWrapper>() .InSingletonScope(); Bind <IFileStorageService>() .To <AmazonS3FileStorageService>() .InSingletonScope(); break; } Bind <IPackageFileService>() .To <PackageFileService>(); Bind <IEntityRepository <PackageOwnerRequest> >() .To <EntityRepository <PackageOwnerRequest> >() .InRequestScope(); Bind <IUploadFileService>() .To <UploadFileService>(); // todo: bind all package curators by convention Bind <IAutomaticPackageCurator>() .To <WebMatrixPackageCurator>(); Bind <IAutomaticPackageCurator>() .To <Windows8PackageCurator>(); // todo: bind all commands by convention Bind <IAutomaticallyCuratePackageCommand>() .To <AutomaticallyCuratePackageCommand>() .InRequestScope(); Bind <ICreateCuratedPackageCommand>() .To <CreateCuratedPackageCommand>() .InRequestScope(); Bind <IDeleteCuratedPackageCommand>() .To <DeleteCuratedPackageCommand>() .InRequestScope(); Bind <IModifyCuratedPackageCommand>() .To <ModifyCuratedPackageCommand>() .InRequestScope(); // todo: bind all queries by convention Bind <ICuratedFeedByKeyQuery>() .To <CuratedFeedByKeyQuery>() .InRequestScope(); Bind <ICuratedFeedByNameQuery>() .To <CuratedFeedByNameQuery>() .InRequestScope(); Bind <ICuratedFeedsByManagerQuery>() .To <CuratedFeedsByManagerQuery>() .InRequestScope(); Bind <IPackageRegistrationByKeyQuery>() .To <PackageRegistrationByKeyQuery>() .InRequestScope(); Bind <IPackageRegistrationByIdQuery>() .To <PackageRegistrationByIdQuery>() .InRequestScope(); Bind <IUserByUsernameQuery>() .To <UserByUsernameQuery>() .InRequestScope(); Bind <IAggregateStatsService>() .To <AggregateStatsService>() .InRequestScope(); Bind <IPackageIdsQuery>() .To <PackageIdsQuery>() .InRequestScope(); Bind <IPackageVersionsQuery>() .To <PackageVersionsQuery>() .InRequestScope(); }
public override void Load() { var configuration = new ConfigurationService(); Bind <ConfigurationService>() .ToMethod(context => configuration); Bind <IAppConfiguration>() .ToMethod(context => configuration.Current); Bind <IConfigurationSource>() .ToMethod(context => configuration); if (!String.IsNullOrEmpty(configuration.Current.AzureStorageConnectionString)) { Bind <ErrorLog>() .ToMethod(_ => new TableErrorLog(configuration.Current.AzureStorageConnectionString)) .InSingletonScope(); } else { Bind <ErrorLog>() .ToMethod(_ => new SqlErrorLog(configuration.Current.SqlConnectionString)) .InSingletonScope(); } Bind <ICacheService>() .To <HttpContextCacheService>() .InRequestScope(); Bind <IContentService>() .To <ContentService>() .InSingletonScope(); Bind <IEntitiesContext>() .ToMethod(context => new EntitiesContext(configuration.Current.SqlConnectionString, readOnly: configuration.Current.ReadOnlyMode)) .InRequestScope(); Bind <IEntityRepository <User> >() .To <EntityRepository <User> >() .InRequestScope(); Bind <IEntityRepository <ProjectRegistration> >() .To <EntityRepository <ProjectRegistration> >() .InRequestScope(); Bind <IEntityRepository <Project> >() .To <EntityRepository <Project> >() .InRequestScope(); Bind <IEntityRepository <Credential> >() .To <EntityRepository <Credential> >() .InRequestScope(); Bind <IUserService>() .To <UserService>() .InRequestScope(); Bind <IProjectService>() .To <ProjectService>() .InRequestScope(); Bind <IFormsAuthenticationService>() .To <FormsAuthenticationService>() .InSingletonScope(); Bind <IControllerFactory>() .To <OssFinderControllerFactory>() .InRequestScope(); var mailSenderThunk = new Lazy <IMailSender>( () => { var settings = Kernel.Get <ConfigurationService>(); if (settings.Current.SmtpUri != null && settings.Current.SmtpUri.IsAbsoluteUri) { var smtpUri = new SmtpUri(settings.Current.SmtpUri); var mailSenderConfiguration = new MailSenderConfiguration { DeliveryMethod = SmtpDeliveryMethod.Network, Host = smtpUri.Host, Port = smtpUri.Port, EnableSsl = smtpUri.Secure }; if (!String.IsNullOrWhiteSpace(smtpUri.UserName)) { mailSenderConfiguration.UseDefaultCredentials = false; mailSenderConfiguration.Credentials = new NetworkCredential( smtpUri.UserName, smtpUri.Password); } return(new MailSender(mailSenderConfiguration)); } else { var mailSenderConfiguration = new MailSenderConfiguration { DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory, PickupDirectoryLocation = HostingEnvironment.MapPath("~/App_Data/Mail") }; return(new MailSender(mailSenderConfiguration)); } }); Bind <IMailSender>() .ToMethod(context => mailSenderThunk.Value); Bind <IMessageService>() .To <MessageService>(); Bind <IPrincipal>().ToMethod(context => HttpContext.Current.User); switch (configuration.Current.StorageType) { case StorageType.FileSystem: case StorageType.NotSpecified: ConfigureForLocalFileSystem(); break; case StorageType.AzureStorage: ConfigureForAzureStorage(configuration); break; } Bind <IFileSystemService>() .To <FileSystemService>() .InSingletonScope(); }