using System; using LightInject; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.UnitOfWork; namespace Umbraco.Core.Persistence { /// /// Instanciates repositories. /// public class RepositoryFactory { private readonly IServiceContainer _container; /// /// Initializes a new instance of the class with a container. /// /// A container. public RepositoryFactory(IServiceContainer container) { if (container == null) throw new ArgumentNullException(nameof(container)); _container = container; } public virtual INotificationsRepository CreateNotificationsRepository(IDatabaseUnitOfWork uow) { return _container.GetInstance(uow); } public virtual IExternalLoginRepository CreateExternalLoginRepository(IDatabaseUnitOfWork uow) { return _container.GetInstance(uow); } public virtual IPublicAccessRepository CreatePublicAccessRepository(IDatabaseUnitOfWork uow) { return _container.GetInstance(uow); } public virtual ITaskRepository CreateTaskRepository(IDatabaseUnitOfWork uow) { return _container.GetInstance(uow); } public virtual IAuditRepository CreateAuditRepository(IDatabaseUnitOfWork uow) { return _container.GetInstance(uow); } public virtual ITagRepository CreateTagRepository(IDatabaseUnitOfWork uow) { return _container.GetInstance(uow); } public virtual IContentRepository CreateContentRepository(IDatabaseUnitOfWork uow) { return _container.GetInstance(uow); } public virtual IContentTypeRepository CreateContentTypeRepository(IDatabaseUnitOfWork uow) { return _container.GetInstance(uow); } public virtual IDataTypeDefinitionRepository CreateDataTypeDefinitionRepository(IDatabaseUnitOfWork uow) { return _container.GetInstance(uow); } public virtual IDictionaryRepository CreateDictionaryRepository(IDatabaseUnitOfWork uow) { return _container.GetInstance(uow); } public virtual ILanguageRepository CreateLanguageRepository(IDatabaseUnitOfWork uow) { return _container.GetInstance(uow); } public virtual IMediaRepository CreateMediaRepository(IDatabaseUnitOfWork uow) { return _container.GetInstance(uow); } public virtual IMediaTypeRepository CreateMediaTypeRepository(IDatabaseUnitOfWork uow) { return _container.GetInstance(uow); } public virtual IRelationRepository CreateRelationRepository(IDatabaseUnitOfWork uow) { return _container.GetInstance(uow); } public virtual IRelationTypeRepository CreateRelationTypeRepository(IDatabaseUnitOfWork uow) { return _container.GetInstance(uow); } public virtual IScriptRepository CreateScriptRepository(IUnitOfWork uow) { return _container.GetInstance(uow); } internal virtual IPartialViewRepository CreatePartialViewRepository(IUnitOfWork uow) { return _container.GetInstance(uow, "PartialViewRepository"); } internal virtual IPartialViewRepository CreatePartialViewMacroRepository(IUnitOfWork uow) { return _container.GetInstance(uow, "PartialViewMacroRepository"); } public virtual IStylesheetRepository CreateStylesheetRepository(IUnitOfWork uow, IDatabaseUnitOfWork db) { return _container.GetInstance(uow); } public virtual ITemplateRepository CreateTemplateRepository(IDatabaseUnitOfWork uow) { return _container.GetInstance(uow); } public virtual IMigrationEntryRepository CreateMigrationEntryRepository(IDatabaseUnitOfWork uow) { return _container.GetInstance(uow); } public virtual IServerRegistrationRepository CreateServerRegistrationRepository(IDatabaseUnitOfWork uow) { return _container.GetInstance(uow); } public virtual IUserTypeRepository CreateUserTypeRepository(IDatabaseUnitOfWork uow) { return _container.GetInstance(uow); } public virtual IUserRepository CreateUserRepository(IDatabaseUnitOfWork uow) { return _container.GetInstance(uow); } internal virtual IMacroRepository CreateMacroRepository(IDatabaseUnitOfWork uow) { return _container.GetInstance(uow); } public virtual IMemberRepository CreateMemberRepository(IDatabaseUnitOfWork uow) { return _container.GetInstance(uow); } public virtual IMemberTypeRepository CreateMemberTypeRepository(IDatabaseUnitOfWork uow) { return _container.GetInstance(uow); } public virtual IMemberGroupRepository CreateMemberGroupRepository(IDatabaseUnitOfWork uow) { return _container.GetInstance(uow); } public virtual IEntityRepository CreateEntityRepository(IDatabaseUnitOfWork uow) { return _container.GetInstance(uow); } public virtual IDomainRepository CreateDomainRepository(IDatabaseUnitOfWork uow) { return _container.GetInstance(uow); } public virtual ITaskTypeRepository CreateTaskTypeRepository(IDatabaseUnitOfWork uow) { return _container.GetInstance(uow); } internal virtual EntityContainerRepository CreateEntityContainerRepository(IDatabaseUnitOfWork uow, Guid containerObjectType) { return _container.GetInstance(uow); } } }