Files
Umbraco-CMS/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Repositories.cs
Bjarke Berg 6658a521b2 Dynamic Root (Alternative to XPath in MNTP) (#15035)
* Temp commit.. Initial work on XPath alternative for dymamically finding start nodes

* First commit that goes all the way from ui to db for NearestAncestorOrSelf

* Added more filters + return null from controller instead of not found

* Bugfix

* rewrite query to make sqlserver happy?

* Added more tests

* clean up initial step

* Added tests and refactor

* Update endpoint to take model instead of json

* pick origin

* Use model for config instead of string

* append add filter button

* fix

* default filter

* rename json fields

* correct field names

* minor corrections

* Renaming..

* Rename endpoint

* initial work for appending query steps

* query steps ui

* more localization

* query step UI

* Use doc type keys instead of alias

* only for Documents

* change to send keys to anyOfDocTypeKeys

* Fix potential bug

* Fix when level is impossible to get

* correct prop to dynamicRoot

* noValidStartNode dialog

* custom query step

* Renaming

* Rollback unintended file change

* Fixed issue if no doc type is chosen

* Remove unintended file changes

* More unintended changes

* Renaming

* Optimizations

- IDE Recommendation for better source
- Renaming for better clarity
- Improving spacing/formatting
- Typo corrections
- Remove warnings concerning IEnumerable

* Fix failed attempt bug

---------

Co-authored-by: Niels Lyngsø <niels.lyngso@gmail.com>
Co-authored-by: Sven Geusens <sge@umbraco.dk>
2023-10-31 11:38:24 +01:00

80 lines
5.2 KiB
C#

using Microsoft.Extensions.DependencyInjection;
using Umbraco.Cms.Core.DependencyInjection;
using Umbraco.Cms.Core.Persistence.Repositories;
using Umbraco.Cms.Core.DynamicRoot;
using Umbraco.Cms.Core.DynamicRoot.QuerySteps;
using Umbraco.Cms.Infrastructure.Persistence.Repositories;
using Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement;
using Umbraco.Extensions;
namespace Umbraco.Cms.Infrastructure.DependencyInjection;
/// <summary>
/// Composes repositories.
/// </summary>
public static partial class UmbracoBuilderExtensions
{
/// <summary>
/// Adds the Umbraco repositories
/// </summary>
internal static IUmbracoBuilder AddRepositories(this IUmbracoBuilder builder)
{
// repositories
builder.Services.AddUnique<IAuditRepository, AuditRepository>();
builder.Services.AddUnique<IAuditEntryRepository, AuditEntryRepository>();
builder.Services.AddUnique<ICacheInstructionRepository, CacheInstructionRepository>();
builder.Services.AddUnique<IContentTypeRepository, ContentTypeRepository>();
builder.Services.AddUnique<IDataTypeContainerRepository, DataTypeContainerRepository>();
builder.Services.AddUnique<IDataTypeRepository, DataTypeRepository>();
builder.Services.AddUnique<IDictionaryRepository, DictionaryRepository>();
builder.Services.AddUnique<IDocumentBlueprintRepository, DocumentBlueprintRepository>();
builder.Services.AddUnique<IDocumentRepository, DocumentRepository>();
builder.Services.AddUnique<IDocumentVersionRepository, DocumentVersionRepository>();
builder.Services.AddUnique<IDocumentTypeContainerRepository, DocumentTypeContainerRepository>();
builder.Services.AddUnique<IDomainRepository, DomainRepository>();
builder.Services.AddMultipleUnique<IEntityRepository, IEntityRepositoryExtended, EntityRepository>();
builder.Services.AddUnique<ITwoFactorLoginRepository, TwoFactorLoginRepository>();
builder.Services.AddSingleton<ExternalLoginRepository>();
builder.Services.AddUnique<IExternalLoginWithKeyRepository>(factory => factory.GetRequiredService<ExternalLoginRepository>());
builder.Services.AddUnique<ILanguageRepository, LanguageRepository>();
builder.Services.AddUnique<IMacroRepository, MacroRepository>();
builder.Services.AddUnique<IMediaRepository, MediaRepository>();
builder.Services.AddUnique<IMediaTypeContainerRepository, MediaTypeContainerRepository>();
builder.Services.AddUnique<IMediaTypeRepository, MediaTypeRepository>();
builder.Services.AddUnique<IMemberGroupRepository, MemberGroupRepository>();
builder.Services.AddUnique<IMemberRepository, MemberRepository>();
builder.Services.AddUnique<IMemberTypeContainerRepository, MemberTypeContainerRepository>();
builder.Services.AddUnique<IMemberTypeRepository, MemberTypeRepository>();
builder.Services.AddUnique<INotificationsRepository, NotificationsRepository>();
builder.Services.AddUnique<IPublicAccessRepository, PublicAccessRepository>();
builder.Services.AddUnique<IRedirectUrlRepository, RedirectUrlRepository>();
builder.Services.AddUnique<IRelationRepository, RelationRepository>();
builder.Services.AddUnique<ITrackedReferencesRepository, TrackedReferencesRepository>();
builder.Services.AddUnique<IRelationTypeRepository, RelationTypeRepository>();
builder.Services.AddUnique<IServerRegistrationRepository, ServerRegistrationRepository>();
builder.Services.AddUnique<ITagRepository, TagRepository>();
builder.Services.AddUnique<ITemplateRepository, TemplateRepository>();
builder.Services.AddUnique<IUserGroupRepository, UserGroupRepository>();
builder.Services.AddUnique<IUserRepository, UserRepository>();
builder.Services.AddUnique<IConsentRepository, ConsentRepository>();
builder.Services.AddUnique<IPartialViewMacroRepository, PartialViewMacroRepository>();
builder.Services.AddUnique<IPartialViewRepository, PartialViewRepository>();
builder.Services.AddUnique<IScriptRepository, ScriptRepository>();
builder.Services.AddUnique<IStylesheetRepository, StylesheetRepository>();
builder.Services.AddUnique<IContentTypeCommonRepository, ContentTypeCommonRepository>();
builder.Services.AddUnique<IKeyValueRepository, KeyValueRepository>();
builder.Services.AddUnique<IInstallationRepository, InstallationRepository>();
builder.Services.AddUnique<IUpgradeCheckRepository, UpgradeCheckRepository>();
builder.Services.AddUnique<ILogViewerQueryRepository, LogViewerQueryRepository>();
builder.Services.AddUnique<INodeCountRepository, NodeCountRepository>();
builder.Services.AddUnique<IIdKeyMapRepository, IdKeyMapRepository>();
builder.Services.AddUnique<IPropertyTypeUsageRepository, PropertyTypeUsageRepository>();
builder.Services.AddUnique<IDataTypeUsageRepository, DataTypeUsageRepository>();
builder.Services.AddUnique<IDynamicRootRepository, DynamicRootRepository>();
builder.Services.AddUnique<IWebhookRepository, WebhookRepository>();
builder.Services.AddUnique<IWebhookLogRepository, WebhookLogRepository>();
return builder;
}
}