diff --git a/14/umbraco-cms/reference/management/services/README.md b/14/umbraco-cms/reference/management/services/README.md
index 1b70c6ba226..5917690dae1 100644
--- a/14/umbraco-cms/reference/management/services/README.md
+++ b/14/umbraco-cms/reference/management/services/README.md
@@ -1 +1,104 @@
-# Services Reference
+---
+description: List of service references along with instructions on how to use them, as well as some examples for better understanding.
+---
+
+# Service References
+
+Below you can find a list of most common services:
+
+## [AuditService](https://apidocs.umbraco.com/v14/csharp/api/Umbraco.Cms.Core.Services.IAuditService.html)
+
+## [ConsentService](https://apidocs.umbraco.com/v14/csharp/api/Umbraco.Cms.Core.Services.IConsentService.html)
+
+## [ContentService](https://apidocs.umbraco.com/v14/csharp/api/Umbraco.Cms.Core.Services.IContentService.html)
+
+## [ContentTypeService](https://apidocs.umbraco.com/v14/csharp/api/Umbraco.Cms.Core.Services.IContentTypeService.html)
+
+## [DataTypeService](https://apidocs.umbraco.com/v14/csharp/api/Umbraco.Cms.Core.Services.IDataTypeService.html)
+
+## [DomainService](https://apidocs.umbraco.com/v14/csharp/api/Umbraco.Cms.Core.Services.IDomainService.html)
+
+## [EntityService](https://apidocs.umbraco.com/v14/csharp/api/Umbraco.Cms.Core.Services.IEntityService.html)
+
+## [ExternalLoginService](https://apidocs.umbraco.com/v14/csharp/api/Umbraco.Cms.Core.Services.ExternalLoginService.html)
+
+## [FileService](https://apidocs.umbraco.com/v14/csharp/api/Umbraco.Cms.Core.Services.IFileService.html)
+
+## [LocalizationService](https://apidocs.umbraco.com/v14/csharp/api/Umbraco.Cms.Core.Services.ILocalizationService.html)
+
+## [LocalizedTextService](https://apidocs.umbraco.com/v14/csharp/api/Umbraco.Cms.Core.Services.LocalizedTextService.html)
+
+## [MediaService](https://apidocs.umbraco.com/v14/csharp/api/Umbraco.Cms.Core.Services.IMediaService.html)
+
+## [MemberGroupService](https://apidocs.umbraco.com/v13/csharp/api/Umbraco.Cms.Core.Services.IMemberGroupService.html)
+
+## [MemberService](https://apidocs.umbraco.com/v14/csharp/api/Umbraco.Cms.Core.Services.IMemberService.html)
+
+## [MemberTypeService](https://apidocs.umbraco.com/v14/csharp/api/Umbraco.Cms.Core.Services.IMemberTypeService.html)
+
+## [NotificationService](https://apidocs.umbraco.com/v14/csharp/api/Umbraco.Cms.Core.Services.INotificationService.html)
+
+## [PackagingService](https://apidocs.umbraco.com/v14/csharp/api/Umbraco.Cms.Core.Services.IPackagingService.html)
+
+## [PublicAccessService](https://apidocs.umbraco.com/v14/csharp/api/Umbraco.Cms.Core.Services.IPublicAccessService.html)
+
+## [RedirectUrlService](https://apidocs.umbraco.com/v14/csharp/api/Umbraco.Cms.Core.Services.IRedirectUrlService.html)
+
+## [RelationService](https://apidocs.umbraco.com/v14/csharp/api/Umbraco.Cms.Core.Services.IRelationService.html)
+
+## [ServerRegistrationService](https://apidocs.umbraco.com/v14/csharp/api/Umbraco.Cms.Core.Services.IServerRegistrationService.html)
+
+## [TagService](https://apidocs.umbraco.com/v14/csharp/api/Umbraco.Cms.Core.Services.ITagService.html)
+
+## [UserService](https://apidocs.umbraco.com/v14/csharp/api/Umbraco.Cms.Core.Services.IUserService.html)
+
+You can find a list of all supported services in the [API Docs](https://apidocs.umbraco.com/v14/csharp/api/Umbraco.Cms.Core.Services.html).
+
+# Getting a Service
+
+All services can be accessed with the following using statement:
+
+```csharp
+using Umbraco.Cms.Core.Services;
+```
+
+In some cases, you can use [Dependency Injection](https://learn.microsoft.com/en-us/dotnet/core/extensions/dependency-injection). For example, if you have registered your class in Umbraco's dependency injection, you can specify the service interface in your constructor.
+
+For example, if you use a `NotificationService` you can use Dependency Injection via the `INotificationService` interface like this:
+
+```csharp
+public class MyClass
+{
+ private INotificationService _notificationService;
+
+ public MyClass(INotificationService notificationService)
+ {
+ _notificationService = notificationService;
+ }
+}
+```
+
+In Razor views, you can access the Notification Service through the `@inject` directive:
+
+```csharp
+@inject INotificationService NotificationService
+```
+
+You can use the above example for other services where you can replace the interface and service name.
+
+# Samples
+
+* [Consent Service Example](./consentservice.md)
+Example of how to work with a Consent.
+* [User Service Example](./create-a-new-user.md)
+Example of adding a user to a user group.
+* [Content Service Example](./create-content-programmatically.md)
+Example of creating content programmatically.
+* [Media Service Example](./mediaservice.md)
+Examples of how to create a new folder and a new media item from a stream.
+* [Relation Service Example](./relationservice.md)
+Example of how to automatically relate to root node.
+* [Content Type Service Example](./retrieving-content-types.md)
+Examples of how to retrieve content types and content type containers.
+* [Localization Service Example](./retrieving-languages.md)
+Example on how to retrieve languages.
diff --git a/14/umbraco-cms/reference/management/services/auditservice.md b/14/umbraco-cms/reference/management/services/auditservice.md
deleted file mode 100644
index 612f616a41f..00000000000
--- a/14/umbraco-cms/reference/management/services/auditservice.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# AuditService
-
-The AuditService acts as a "gateway" to Umbraco data for operations which are related to the audit trail.
-
-[Browse the API documentation for IAuditService interface](https://apidocs.umbraco.com/v13/csharp/api/Umbraco.Cms.Core.Services.IAuditService.html).
-
-* **Namespace:** `Umbraco.Cms.Core.Services`
-* **Assembly:** `Umbraco.Core.dll`
-
- All samples in this document will require references to the following dll:
-
-* Umbraco.Core.dll
-
-All samples in this document will require the following using statements:
-
-```csharp
-using Umbraco.Cms.Core.Services;
-```
-
-For Razor views:
-
-```csharp
-@using Umbraco.Cms.Core.Services
-```
-
-## Getting the service
-
-### Dependency Injection
-
-If you wish to use the audit service in a class, you need to use Dependency Injection (DI). For instance if you have registered your own class in Umbraco's DI container, you can specify the `IAuditService` interface in your constructor:
-
-```csharp
-public class MyClass
-{
- private IAuditService _auditService;
-
- public MyClass(IAuditService auditService)
- {
- _auditService = auditService;
- }
-}
-```
-
-In Razor views, you can access the audit service through the `@inject` directive:
-
-```csharp
-@inject IAuditService AuditService
-```
diff --git a/14/umbraco-cms/reference/management/services/consentservice.md b/14/umbraco-cms/reference/management/services/consentservice.md
index 029d0105ed8..5a9589073b6 100644
--- a/14/umbraco-cms/reference/management/services/consentservice.md
+++ b/14/umbraco-cms/reference/management/services/consentservice.md
@@ -1,10 +1,5 @@
# ConsentService
-[Browse the API documentation for ConsentService](https://apidocs.umbraco.com/v13/csharp/api/Umbraco.Cms.Core.Services.IConsentService.html).
-
-* **Namespace:** `Umbraco.Cms.Core.Services`
-* **Assembly:** `Umbraco.Core.dll`
-
A service for handling lawful data processing requirements.
## What is a Consent
@@ -17,7 +12,7 @@ Consent can be given or revoked or changed via the `RegisterConsent` method, whi
## Get the current state
-Getter methods of this service return the current state of a consent, that is the latest [IConsent](https://apidocs.umbraco.com/v13/csharp/api/Umbraco.Cms.Core.Models.IConsent.html) entity that was created.
+Getter methods of this service return the current state of a consent, that is the latest [IConsent](https://apidocs.umbraco.com/v14/csharp/api/Umbraco.Cms.Core.Models.IConsent.html) entity that was created.
## Revoking a consent
@@ -46,9 +41,3 @@ if (consents != null && consents.Any())
}
}
```
-
-In Razor views, you can access the consent service through the `@inject` directive:
-
-```csharp
-@inject IConsentService ConsentService
-```
diff --git a/14/umbraco-cms/reference/management/services/contentservice/README.md b/14/umbraco-cms/reference/management/services/contentservice/README.md
deleted file mode 100644
index a9d8824bce7..00000000000
--- a/14/umbraco-cms/reference/management/services/contentservice/README.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# ContentService
-
-The ContentService acts as a "gateway" to Umbraco data for operations which are related to Content.
-
-[Browse the v13 API documentation for ContentService](https://apidocs.umbraco.com/v13/csharp/api/Umbraco.Cms.Core.Services.IContentService.html).
-
- * **Namespace:** `Umbraco.Cms.Core.Services`
- * **Assembly:** `Umbraco.Core.dll`
-
-All samples in this document will require references to the following dll:
-
-* Umbraco.Core.dll
-
-All samples in this document will require the following using statements:
-
-```csharp
-using Umbraco.Cms.Core.Services;
-```
-
-For Razor views:
-```csharp
-@using Umbraco.Cms.Core.Services
-```
-
-## Getting the service
-
-If you wish to use the content service in a class, you need to use Dependency Injection (DI) in your constructor:
-
-```csharp
-public class MyClass
-{
- private IContentService _contentService;
-
- public MyClass(IContentService contentService)
- {
- _contentService = contentService;
- }
-}
-```
-
-In Razor views, you can access the content service through the `@inject` directive:
-
-```csharp
-@inject IContentService ContentService
-```
diff --git a/14/umbraco-cms/reference/management/services/contenttypeservice/README.md b/14/umbraco-cms/reference/management/services/contenttypeservice/README.md
deleted file mode 100644
index 4a6b662508f..00000000000
--- a/14/umbraco-cms/reference/management/services/contenttypeservice/README.md
+++ /dev/null
@@ -1,53 +0,0 @@
-# ContentTypeService
-
-The content type service acts as a "gateway" to Umbraco data for operations which are related to both content types and media types.
-
-[Browse the API documentation for IContentTypeService](https://apidocs.umbraco.com/v13/csharp/api/Umbraco.Cms.Core.Services.IContentTypeService.html).
-
- * **Namespace:** `Umbraco.Cms.Core.Services`
- * **Assembly:** `Umbraco.Core.dll`
-
-All samples in this document will require references to the following dll:
-
-* Umbraco.Core.dll
-
-All samples in this document will require the following using statements:
-
-```csharp
-using Umbraco.Cms.Core.Services;
-```
-
-For Razor views:
-```csharp
-@using Umbraco.Cms.Core.Services
-```
-
-## Getting the service
-
-### Dependency Injection
-
-If you wish to use the content type service in a class, you need to specify the `IContentTypeService` interface in your constructor:
-
-```csharp
-public class MyClass
-{
- private IContentTypeService _contentTypeService;
-
- public MyClass(IContentTypeService contentTypeService)
- {
- _contentTypeService = contentTypeService;
- }
-}
-```
-
-In Razor views, you can access the content type service through the `@inject` directive:
-
-```csharp
-@inject IContentTypeService ContentTypeService
-```
-
-## Samples
-
-* [**Retrieving content types**](retrieving-content-types.md)
See examples on how to retrieve content types via the service - either individually or as a collection.
-
-* [**Retrieving content type containers**](retrieving-content-type-containers.md)
See examples on how to retrieve content type containers (folders) via the service - either individually or as a collection.
diff --git a/14/umbraco-cms/reference/management/services/contenttypeservice/retrieving-content-type-containers.md b/14/umbraco-cms/reference/management/services/contenttypeservice/retrieving-content-type-containers.md
deleted file mode 100644
index 6bfdb0d2d20..00000000000
--- a/14/umbraco-cms/reference/management/services/contenttypeservice/retrieving-content-type-containers.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# Retrieving content types
-
-## Getting a single content type container
-
-Content types can be added either at the root level, under another content type or under a content type container (or folders as they're called in the Umbraco backoffice). The approach for getting a single container is similar to getting a single content type, meaning that you can look up a container - either by its GUID:
-
-```csharp
-// Declare the GUID ID
-Guid guid = new Guid("d3b9cc9a-d471-4465-a89a-112c6bc1e5b4");
-
-// Get a container by its GUID ID
-EntityContainer container = _contentTypeService.GetContainer(guid);
-```
-
-or its numeric counterpart:
-
-```csharp
-// Get a container by its numeric ID
-EntityContainer container = _contentTypeService.GetContainer(1090);
-```
-
-## Getting a list of content type containers
-
-In the same way as you can get the content types of a container, you can get the child containers of another container. This is done by calling the `GetContainers` method with an array of numeric IDs:
-
-```csharp
-// Declare the array of IDs to lookup
-int[] ids = new[] {1090};
-
-// Get the child containers via the content type service
-IEnumerable containers = _contentTypeService.GetContainers(ids);
-```
-
-Also, if the array is empty, all containers will be returned:
-
-```csharp
-// Declare the array of IDs to lookup
-int[] ids = new int[0];
-
-// Get all content type containers
-IEnumerable containers = _contentTypeService.GetContainers(ids);
-```
diff --git a/14/umbraco-cms/reference/management/services/userservice/create-a-new-user.md b/14/umbraco-cms/reference/management/services/create-a-new-user.md
similarity index 53%
rename from 14/umbraco-cms/reference/management/services/userservice/create-a-new-user.md
rename to 14/umbraco-cms/reference/management/services/create-a-new-user.md
index 996b4a42c8e..659d9e7837d 100644
--- a/14/umbraco-cms/reference/management/services/userservice/create-a-new-user.md
+++ b/14/umbraco-cms/reference/management/services/create-a-new-user.md
@@ -1,10 +1,31 @@
---
-description: "This will show you how to create a new user using the UserService in Umbraco."
+description: This will show you how to add a user to a user group using the UserService in Umbraco.
---
+
+# Getting the service
+
+## Services property
+
+If you wish to use the UserService in a class that inherits from one of the Umbraco base classes. For example: `SurfaceController`, `UmbracoApiController`, or `UmbracoAuthorizedApiController`). You can access the service through a local `Services` property:
+
+```csharp
+IUserService userService = Services.UserService;
+```
+
+## Static accessor
+
+If neither a `Services` property nor Dependency Injection is available, you can reference the static `Current` class directly:
+
+```csharp
+IUserService userService = Umbraco.Core.Composing.Current.Services.UserService;
+```
+
# Creating a user
+
If you want to create a new user, you'd use ASP.NET identity APIs like it is used in core.
-### Assigning the user to a user group
+## Assigning the user to a user group
+
Permissions aren't administered for the specific user, but rather for the user group(s) that the user is a part of. So to add our new user to a user group, we first need to get a reference to the user via the `GetUserGroupByAlias` method, and then use the `AddGroup` method for adding the group to our user:
```csharp
diff --git a/14/umbraco-cms/reference/management/services/contentservice/create-content-programmatically.md b/14/umbraco-cms/reference/management/services/create-content-programmatically.md
similarity index 89%
rename from 14/umbraco-cms/reference/management/services/contentservice/create-content-programmatically.md
rename to 14/umbraco-cms/reference/management/services/create-content-programmatically.md
index f0f10a749c9..9a66151f726 100644
--- a/14/umbraco-cms/reference/management/services/contentservice/create-content-programmatically.md
+++ b/14/umbraco-cms/reference/management/services/create-content-programmatically.md
@@ -1,3 +1,7 @@
+---
+description: Example on how to create content programmatically using the ContentService.
+---
+
# Create content programmatically
In the example below, a new page is programmatically created using the content service. It is assumed that there are two document types, namely Catalogue and Product. In this case, a new Product is added underneath the Catalogue page. Add the below code in the Catalogue template.
@@ -23,8 +27,9 @@ In the example below, a new page is programmatically created using the content s
// Save and publish the child item
ContentService.SaveAndPublish(demoproduct);
- ```
+
}
+```
In a multilanguage setup, it is necessary to set the name of the content item for a specified culture:
@@ -33,4 +38,4 @@ demoproduct.SetCultureName("Microphone", "en-us"); // this will set the english
demoproduct.SetCultureName("Mikrofon", "da"); // this will set the danish name
```
-For information on how to retrieve multilingual languages, see the [Retrieving languages](../localizationservice/retrieving-languages.md) article.
+For information on how to retrieve multilingual languages, see the [Retrieving languages](./retrieving-languages.md) article.
diff --git a/14/umbraco-cms/reference/management/services/datatypeservice.md b/14/umbraco-cms/reference/management/services/datatypeservice.md
deleted file mode 100644
index d9ea0dd4db2..00000000000
--- a/14/umbraco-cms/reference/management/services/datatypeservice.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# DataTypeService
-
-The DataTypeService acts as a "gateway" to Umbraco data for operations which are related to DataTypes and DataTypeDefinitions.
-
-[Browse the API documentation for IDataTypeService](https://apidocs.umbraco.com/v13/csharp/api/Umbraco.Cms.Core.Services.IDataTypeService.html).
-
-* **Namespace:** `Umbraco.Cms.Core.Services`
-* **Assembly:** `Umbraco.Core.dll`
-
-All samples in this document will require references to the following dll:
-
-* Umbraco.Core.dll
-
-All samples in this document will require the following using statements:
-
-```csharp
-using Umbraco.Cms.Core.Services;
-```
-
-For Razor views:
-
-```csharp
-@using Umbraco.Cms.Core.Services
-```
-
-## Getting the service
-
-### Dependency Injection
-
-If you wish to use the Data Type service in a class, you need to specify the `IDataTypeService` interface in your constructor:
-
-```csharp
-public class MyClass
-{
- private IDataTypeService _dataTypeService;
-
- public MyClass(IDataTypeService dataTypeService)
- {
- _dataTypeService = dataTypeService;
- }
-}
-```
-
-In Razor views, you can access the Data Type service through the `@inject` directive:
-
-```csharp
-@inject IDataTypeService DataTypeService
-```
diff --git a/14/umbraco-cms/reference/management/services/domainservice.md b/14/umbraco-cms/reference/management/services/domainservice.md
deleted file mode 100644
index feff49f4777..00000000000
--- a/14/umbraco-cms/reference/management/services/domainservice.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# DomainService
-
-The DomainService acts as a "gateway" to Umbraco data for operations which are related to domains.
-
-[Browse the API documentation for IDomainService](https://apidocs.umbraco.com/v13/csharp/api/Umbraco.Cms.Core.Services.IDomainService.html).
-
-* **Namespace:** `Umbraco.Cms.Core.Services`
-* **Assembly:** `Umbraco.Core.dll`
-
-All samples in this document will require references to the following dll:
-
-* Umbraco.Core.dll
-
-All samples in this document will require the following using statements:
-
-```csharp
-using Umbraco.Cms.Core.Services;
-```
-
-For Razor views:
-
-```csharp
-@using Umbraco.Cms.Core.Services
-```
-
-## Getting the service
-
-### Dependency Injection
-
-If you wish to use the domain service in a class, you need to specify the `IDomainService` interface in your constructor:
-
-```csharp
-public class MyClass
-{
- private IDomainService _domainService;
-
- public MyClass(IDomainService domainService)
- {
- _domainService = domainService;
- }
-}
-```
-
-In Razor views, you can access the domain service through the `@inject` directive:
-
-```csharp
-@inject IDomainService DomainService
-```
diff --git a/14/umbraco-cms/reference/management/services/entityservice.md b/14/umbraco-cms/reference/management/services/entityservice.md
deleted file mode 100644
index da4c4ea71cd..00000000000
--- a/14/umbraco-cms/reference/management/services/entityservice.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# EntityService
-
-The EntityService acts as a "gateway" to Umbraco data for operations which are related to entities.
-
-[Browse the API documentation for IEntityService interface](https://apidocs.umbraco.com/v13/csharp/api/Umbraco.Cms.Core.Services.IEntityService.html).
-
-* **Namespace:** `Umbraco.Cms.Core.Services`
-* **Assembly:** `Umbraco.Core.dll`
-
- All samples in this document will require references to the following dll:
-
-* Umbraco.Core.dll
-
-All samples in this document will require the following using statements:
-
-```csharp
-using Umbraco.Cms.Core.Services;
-```
-
-For Razor views:
-
-```csharp
-@using Umbraco.Cms.Core.Services
-```
-
-## Getting the service
-
-### Dependency Injection
-
-If you wish to use the entity service in a class, you need to specify the `IEntityService` interface in your constructor:
-
-```csharp
-public class MyClass
-{
- private IEntityService _entityService;
-
- public MyClass(IEntityService entityService)
- {
- _entityService = entityService;
- }
-}
-```
-
-In Razor views, you can access the entity service through the `@inject` directive:
-
-```csharp
-@inject IEntityService EntityService
-```
diff --git a/14/umbraco-cms/reference/management/services/externalloginservice.md b/14/umbraco-cms/reference/management/services/externalloginservice.md
deleted file mode 100644
index c757aac919c..00000000000
--- a/14/umbraco-cms/reference/management/services/externalloginservice.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# ExternalLoginService
-
-The ExternalLoginService is used to store the external login info and can be replaced with your own implementation.
-
-[Browse the API documentation for IEntityService interface](https://apidocs.umbraco.com/v13/csharp/api/Umbraco.Cms.Core.Services.IExternalLoginService.html).
-
-* **Namespace:** `Umbraco.Cms.Core.Services`
-* **Assembly:** `Umbraco.Core.dll`
-
-All samples in this document will require references to the following dll:
-
-* Umbraco.Core.dll
-
-All samples in this document will require the following using statements:
-
-```csharp
-using Umbraco.Cms.Core.Services;
-```
-
-## Getting the service
-
-### Dependency Injection
-
-If you wish to use the entity service in a class, you need to specify the `IExternalLoginService` interface in your constructor:
-
-```csharp
-public class MyClass
-{
- private IExternalLoginService _externalLoginService;
-
- public MyClass(IExternalLoginService externalLoginService)
- {
- _externalLoginService = externalLoginService;
- }
-}
-```
-
-In Razor views, you can access the entity service through the `@inject` directive:
-
-```csharp
-@inject IExternalLoginService ExternalLoginService
-```
diff --git a/14/umbraco-cms/reference/management/services/fileservice.md b/14/umbraco-cms/reference/management/services/fileservice.md
deleted file mode 100644
index 076b97166c8..00000000000
--- a/14/umbraco-cms/reference/management/services/fileservice.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# FileService
-
-The FileService acts as a "gateway" to Umbraco data for operations which are related to Scripts, Stylesheets and Templates.
-
-[Browse the API documentation for IFileService](https://apidocs.umbraco.com/v13/csharp/api/Umbraco.Cms.Core.Services.IFileService.html).
-
-* **Namespace:** `Umbraco.Cms.Core.Services`
-* **Assembly:** `Umbraco.Core.dll`
-
-All samples in this document will require references to the following dll:
-
-* Umbraco.Core.dll
-
-All samples in this document will require the following using statements:
-
-```csharp
-using Umbraco.Cms.Core.Services;
-```
-
-For Razor views:
-
-```csharp
-@using Umbraco.Cms.Core.Services
-```
-
-## Getting the service
-
-### Dependency Injection
-
-If you wish to use the file service in a class, you need to specify the `IFileService` interface in your constructor:
-
-```csharp
-public class MyClass
-{
- private IFileService _fileService;
-
- public MyClass(IFileService fileService)
- {
- _fileService = fileService;
- }
-}
-```
-
-In Razor views, you can access the file service through the `@inject` directive:
-
-```csharp
-@inject IFileService FileService
-```
diff --git a/14/umbraco-cms/reference/management/services/localizationservice/README.md b/14/umbraco-cms/reference/management/services/localizationservice/README.md
deleted file mode 100644
index 04eca4c9ea7..00000000000
--- a/14/umbraco-cms/reference/management/services/localizationservice/README.md
+++ /dev/null
@@ -1,53 +0,0 @@
-# LocalizationService
-
-The LocalizationService acts as a "gateway" to Umbraco data for operations which are related to Dictionary items and Languages.
-
-[Browse the API documentation for ILocalizationService](https://apidocs.umbraco.com/v13/csharp/api/Umbraco.Cms.Core.Services.ILocalizationService.html).
-
-* **Namespace:** `Umbraco.Cms.Core.Services`
-* **Assembly:** `Umbraco.Core.dll`
-
-All samples in this document will require references to the following dll:
-
-* Umbraco.Core.dll
-
-All samples in this document will require the following using statements:
-
-```csharp
-using Umbraco.Cms.Core.Services;
-```
-
-For Razor views:
-
-```csharp
-@using Umbraco.Cms.Core.Services
-```
-
-## Getting the service
-
-### Dependency Injection
-
-If you wish to use the localization service in a class, you need to specify the `ILocalizationService` interface in your constructor:
-
-```csharp
-public class MyClass
-{
- private ILocalizationService _localizationService;
-
- public MyClass(ILocalizationService localizationService)
- {
- _localizationService = localizationService;
- }
-}
-```
-
-In Razor views, you can access the localization service through the `@inject` directive:
-
-```csharp
-@inject ILocalizationService LocalizationService
-```
-
-## Samples
-
-* [**Retrieving languages**](retrieving-languages.md)\
- See examples on how to retrieve languages via the localization service - either individually or as a collection.
diff --git a/14/umbraco-cms/reference/management/services/mediaservice.md b/14/umbraco-cms/reference/management/services/mediaservice.md
index 33675e75a1c..d695049e016 100644
--- a/14/umbraco-cms/reference/management/services/mediaservice.md
+++ b/14/umbraco-cms/reference/management/services/mediaservice.md
@@ -1,15 +1,10 @@
-# MediaService
+---
+description: Examples on how to create a new folder and a new media item from a stream by using the MediaService.
+---
-The MediaService acts as a "gateway" to Umbraco data for operations which are related to media.
+# Samples
-[Browse the API documentation for IMediaService interface](https://apidocs.umbraco.com/v13/csharp/api/Umbraco.Cms.Core.Services.IMediaService.html).
-
-* **Namespace:** `Umbraco.Cms.Core.Services`
-* **Assembly:** `Umbraco.Core.dll`
-
- All samples in this document will require reference to the following packages:
-
-* [`Umbraco.Cms.Core`](https://www.nuget.org/packages/Umbraco.Cms.Core/)
+In this article, you can find some examples on how to create a new media folder and a media item from a stream programmatically.
Samples in this document will require the following using statements:
@@ -23,33 +18,7 @@ using Umbraco.Cms.Core.Strings;
using Umbraco.Extensions;
```
-## Getting the service
-
-### Dependency Injection
-
-If you wish to use the media service in a class, you need to specify the `IMediaService` interface in your constructor:
-
-```csharp
-public class MyClass
-{
- private IMediaService _mediaService;
-
- public MyClass(IMediaService mediaService)
- {
- _mediaService = mediaService;
- }
-}
-```
-
-In Razor views, you can access the media service through the `@inject` directive:
-
-```csharp
-@inject IMediaService MediaService
-```
-
-## Samples
-
-### Creating a new folder
+## Creating a new folder
To create a new folder at the root of the media archive, your code could look like the following:
@@ -79,14 +48,14 @@ The third parameter is the alias of the Media Type. As Umbraco comes with a Fold
Besides the three mandatory parameters, you can specify a user's numeric ID for media creation attribution. Unspecified cases default to the "Administrator" user with ID `-1`.
-### Creating a new media item from a stream
+## Creating a new media item from a stream
You can specify a `Stream` for the contents of the file that should be created.
As an example, if you have an image on disk named `unicorn.jpg` in the images folder of `wwwroot`. You can open a new stream for a file on the disk, and then create a new media item for that file in Umbraco:
-
Please be aware that you will need to inject the following services:
+
* `MediaFileManager _mediaFileManager`
* `IShortStringHelper _shortStringHelper`
* `IContentTypeBaseServiceProvider _contentTypeBaseServiceProvider`
@@ -109,7 +78,6 @@ using (Stream stream = System.IO.File.OpenRead(path))
// Save the media
var result = _mediaService.Save(media);
}
-}
```
Again Umbraco will make sure the necessary properties are updated.
diff --git a/14/umbraco-cms/reference/management/services/membergroupservice.md b/14/umbraco-cms/reference/management/services/membergroupservice.md
deleted file mode 100644
index b7e20cc32a0..00000000000
--- a/14/umbraco-cms/reference/management/services/membergroupservice.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# MemberGroupService
-
-The MemberGroupService acts as a "gateway" to Umbraco data for operations which are related to Member groups, which are also known as Member Roles.
-
-[Browse the API documentation for IMemberGroupService](https://apidocs.umbraco.com/v13/csharp/api/Umbraco.Cms.Core.Services.IMemberGroupService.html).
-
-* **Namespace:** `Umbraco.Cms.Core.Services`
-* **Assembly:** `Umbraco.Core.dll`
-
-All samples in this document will require references to the following dll:
-
-* Umbraco.Core.dll
-
-All samples in this document will require the following using statements:
-
-```csharp
-using Umbraco.Cms.Core.Services;
-```
-
-For Razor views:
-
-```csharp
-@using Umbraco.Cms.Core.Services
-```
-
-## Getting the service
-
-### Dependency Injection
-
-If you wish to use the member group service in a class, you need to specify the `IMemberGroupService` interface in your constructor:
-
-```csharp
-public class MyClass
-{
- private IMemberGroupService _memberGroupService;
-
- public MyClass(IMemberGroupService memberGroupService)
- {
- _memberGroupService = memberGroupService;
- }
-}
-```
-
-In Razor views, you can access the member group service through the `@inject` directive:
-
-```csharp
-@inject IMemberGroupService MemberGroupService
-```
diff --git a/14/umbraco-cms/reference/management/services/memberservice.md b/14/umbraco-cms/reference/management/services/memberservice.md
deleted file mode 100644
index 0e6913ddbf7..00000000000
--- a/14/umbraco-cms/reference/management/services/memberservice.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# MemberService
-
-The MemberService acts as a "gateway" to Umbraco data for operations which are related to Members.
-
-[Browse the API documentation for IMemberService interface](https://apidocs.umbraco.com/v13/csharp/api/Umbraco.Cms.Core.Services.IMemberService.html).
-
-* **Namespace:** `Umbraco.Cms.Core.Services`
-* **Assembly:** `Umbraco.Core.dll`
-
-All samples in this document will require references to the following dll:
-
-* Umbraco.Core.dll
-
-All samples in this document will require the following using statements:
-
-```csharp
-using Umbraco.Cms.Core.Services;
-```
-
-For Razor views:
-
-```csharp
-@using Umbraco.Cms.Core.Services
-```
-
-## Getting the service
-
-### Dependency Injection
-
-If you wish to use the member service in a class, you need to specify the `IMemberService` interface in your constructor:
-
-```csharp
-public class MyClass
-{
- private IMemberService _memberService;
-
- public MyClass(IMemberService memberService)
- {
- _memberService = memberService;
- }
-}
-```
-
-In Razor views, you can access the member service through the `@inject` directive:
-
-```csharp
-@inject IMemberService MemberService
-```
diff --git a/14/umbraco-cms/reference/management/services/membertypeservice.md b/14/umbraco-cms/reference/management/services/membertypeservice.md
deleted file mode 100644
index e1f6cb3adaf..00000000000
--- a/14/umbraco-cms/reference/management/services/membertypeservice.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# MemberTypeService
-
-The MemberTypeService acts as a "gateway" to Umbraco data for operations which are related to MemberTypes.
-
-[Browse the API documentation for IMemberTypeService interface](https://apidocs.umbraco.com/v13/csharp/api/Umbraco.Cms.Core.Services.IMemberTypeService.html).
-
-* **Namespace:** `Umbraco.Cms.Core.Services`
-* **Assembly:** `Umbraco.Core.dll`
-
-All samples in this document will require references to the following dll:
-
-* Umbraco.Core.dll
-
-All samples in this document will require the following using statements:
-
-```csharp
-using Umbraco.Cms.Core.Services;
-```
-
-For Razor views:
-
-```csharp
-@using Umbraco.Cms.Core.Services
-```
-
-## Getting the service
-
-### Dependency Injection
-
-If you wish to use the member type service in a class, you need to specify the `IMemberTypeService` interface in your constructor:
-
-```csharp
-public class MyClass
-{
- private IMemberTypeService _memberTypeService;
-
- public MyClass(IMemberTypeService memberTypeService)
- {
- _memberTypeService = memberTypeService;
- }
-}
-```
-
-In Razor views, you can access the member type service through the `@inject` directive:
-
-```csharp
-@inject IMemberTypeService MemberTypeService
-```
diff --git a/14/umbraco-cms/reference/management/services/notificationservice.md b/14/umbraco-cms/reference/management/services/notificationservice.md
deleted file mode 100644
index 62f420e0693..00000000000
--- a/14/umbraco-cms/reference/management/services/notificationservice.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# NotificationService
-
-The NotificationServices is used to perform operations related to backoffice notifications.
-
-[Browse the API documentation for INotificationService interface](https://apidocs.umbraco.com/v13/csharp/api/Umbraco.Cms.Core.Services.INotificationService.html).
-
-* **Namespace:** `Umbraco.Cms.Core.Services`
-* **Assembly:** `Umbraco.Core.dll`
-
-All samples in this document will require references to the following dll:
-
-* Umbraco.Core.dll
-
-All samples in this document will require the following using statements:
-
-```csharp
-using Umbraco.Cms.Core.Services;
-```
-
-## Getting the service
-
-### Dependency Injection
-
-In other cases, you may be able to use Dependency Injection. For instance if you have registered your own class in Umbraco's dependency injection, you can specify the `INotificationService` interface in your constructor:
-
-```csharp
-public class MyClass
-{
- private INotificationService _notificationService;
-
- public MyClass(INotificationService notificationService)
- {
- _notificationService = notificationService;
- }
-}
-```
-
-In Razor views, you can access the member type service through the `@inject` directive:
-
-```csharp
-@inject INotificationService NotificationService
-```
diff --git a/14/umbraco-cms/reference/management/services/packagingservice.md b/14/umbraco-cms/reference/management/services/packagingservice.md
deleted file mode 100644
index 7b20b129fb0..00000000000
--- a/14/umbraco-cms/reference/management/services/packagingservice.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# PackagingService
-
-The PackagingService provides import/export functionality for the Core models of the API.
-
-[Browse the API documentation for IPackagingService interface](https://apidocs.umbraco.com/v13/csharp/api/Umbraco.Cms.Core.Services.IPackagingService.html).
-
-* **Namespace:** `Umbraco.Cms.Core.Services`
-* **Assembly:** `Umbraco.Core.dll`
-
-All samples in this document will require references to the following dll:
-
-* Umbraco.Core.dll
-
-All samples in this document will require the following using statements:
-
-```csharp
-using Umbraco.Cms.Core.Services;
-```
-
-## Getting the service
-
-### Dependency Injection
-
-In other cases, you may be able to use Dependency Injection. For instance if you have registered your own class in Umbraco's dependency injection, you can specify the `IPackagingService` interface in your constructor:
-
-```csharp
-public class MyClass
-{
- private IPackagingService _packagingService;
-
- public MyClass(IPackagingService packagingService)
- {
- _packagingService = packagingService;
- }
-}
-```
-
-In Razor views, you can access the member service through the `@inject` directive:
-
-```csharp
-@inject IPackagingService PackagingService
-```
diff --git a/14/umbraco-cms/reference/management/services/publicaccessservice.md b/14/umbraco-cms/reference/management/services/publicaccessservice.md
deleted file mode 100644
index 1d45df75f8d..00000000000
--- a/14/umbraco-cms/reference/management/services/publicaccessservice.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# PublicAccessService
-
-Service to handle public access.
-
-[Browse the API documentation for IPublicAccessService interface](https://apidocs.umbraco.com/v13/csharp/api/Umbraco.Cms.Core.Services.IPublicAccessService.html).
-
-* **Namespace:** `Umbraco.Cms.Core.Services`
-* **Assembly:** `Umbraco.Core.dll`
-
- All samples in this document will require references to the following dll:
-
-* Umbraco.Core.dll
-
-All samples in this document will require the following using statements:
-
-```csharp
-using Umbraco.Cms.Core.Services;
-```
-
-## Getting the service
-
-### Dependency Injection
-
-In other cases, you may be able to use Dependency Injection. For instance if you have registered your own class in Umbraco's dependency injection, you can specify the `IPublicAccessService` interface in your constructor:
-
-```csharp
-public class MyClass
-{
- private IPublicAccessService _publicAccessService;
-
- public MyClass(IPublicAccessService publicAccessService)
- {
- _publicAccessService = publicAccessService;
- }
-}
-```
-
-In Razor views, you can access the member service through the `@inject` directive:
-
-```csharp
-@inject IPublicAccessService PublicAccessService
-```
diff --git a/14/umbraco-cms/reference/management/services/redirecturlservice.md b/14/umbraco-cms/reference/management/services/redirecturlservice.md
deleted file mode 100644
index 37058c761c8..00000000000
--- a/14/umbraco-cms/reference/management/services/redirecturlservice.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# RedirectUrlService
-
-The RedirectUrlService is used for Create, Read, Update and Delete (CRUD) operations related to Redirects.
-
-[Browse the API documentation for IRedirectUrlService interface](https://apidocs.umbraco.com/v13/csharp/api/Umbraco.Cms.Core.Services.IRedirectUrlService.html).
-
-* **Namespace:** `Umbraco.Cms.Core.Services`
-* **Assembly:** `Umbraco.Core.dll`
-
-All samples in this document will require references to the following dll:
-
-* Umbraco.Core.dll
-
-All samples in this document will require the following using statements:
-
-```csharp
-using Umbraco.Cms.Core.Services;
-```
-
-## Getting the service
-
-### Dependency Injection
-
-In other cases, you may be able to use Dependency Injection. For instance if you have registered your own class in Umbraco's dependency injection, you can specify the `IRedirectUrlService` interface in your constructor:
-
-```csharp
-public class MyClass
-{
- private IRedirectUrlService _redirectUrlService;
-
- public MyClass(IRedirectUrlService redirectUrlService)
- {
- _redirectUrlService = redirectUrlService;
- }
-}
-```
-
-In Razor views, you can access the member service through the `@inject` directive:
-
-```csharp
-@inject IRedirectUrlService RedirectUrlService
-```
diff --git a/14/umbraco-cms/reference/management/services/relationservice.md b/14/umbraco-cms/reference/management/services/relationservice.md
index e08a1439be1..2207e5ccaaa 100644
--- a/14/umbraco-cms/reference/management/services/relationservice.md
+++ b/14/umbraco-cms/reference/management/services/relationservice.md
@@ -1,285 +1,16 @@
# RelationService
-The `RelationService` is pretty awesome as it allows you to create relations between objects that would otherwise have no obvious connection.
+The `RelationService` allows you to create relations between objects that would otherwise have no obvious connection.
-[Browse the API documentation for IRelationService interface](https://apidocs.umbraco.com/v13/csharp/api/Umbraco.Cms.Core.Services.IRelationService.html).
+# Examples
-* **Namespace:** `Umbraco.Cms.Core.Services`
-* **Assembly:** `Umbraco.Core.dll`
+Below you will find examples using `RelationService`.
-## Getting the service
-
-```csharp
-using System.Web.Mvc;
-using Umbraco.Web.Models;
-using Umbraco.Web.Mvc;
-
-using Umbraco.Cms.Core.Services;
-
-```csharp
-public class MyClass
-{
- private IRelationService _relationService_;
-
- public MyClass(IRelationService relationService)
- {
- _relationService_ = relationService;
- }
-```
-
-## Methods
-
-### AreRelated(int parentId, int childId, string relationTypeAlias)
-
-Checks if two items are related.
-
-Returns `bool`.
-
-### AreRelated(IUmbracoEntity parent, IUmbracoEntity child, string relationTypeAlias)
-
-Checks if two items are related.
-
-Returns `bool`.
-
-### AreRelated(int parentId, int childId)
-
-Checks if two items are related.
-
-Returns `bool`.
-
-### Delete(IRelation relation)
-
-Deletes a relation.
-
-Returns `void`.
-
-### Delete(IRelationType relationType)
-
-Deletes a relation type.
-
-Returns `void`.
-
-### DeleteRelationsOfType(IRelationType relationType)
-
-Deletes relation of the specified relation type.
-
-Returns `void`.
-
-### GetAllRelations(params int\[] ids)
-
-Gets a collection of `Umbraco.Core.Models.Relation` objects. Optional array of integer ids to return relations for.
-
-Returns `IEnumerable`.
-
-### GetAllRelationsByRelationType(RelationType relationType)
-
-Gets a collection of `Umbraco.Core.Models.Relation` objects by their relation type.
-
-Returns `IEnumerable`.
-
-### GetAllRelationsByRelationType(int relationTypeId)
-
-Gets a collection of `Umbraco.Core.Models.Relation` objects by their relation type id.
-
-Returns `IEnumerable`.
-
-### GetAllRelationTypes(params int\[] ids)
-
-Gets a collection of `Umbraco.Core.Models.Relation` objects. Optional array of integer ids to return relationtypes for.
-
-Returns `IEnumerable`.
-
-### GetByChild(IUmbracoEntity child)
-
-Gets a collection of `Umbraco.Core.Models.Relation` objects by their child entity.
-
-Returns `IEnumerable`.
-
-### GetByChild(IUmbracoEntity child, string relationTypeAlias)
-
-Gets a collection of `Umbraco.Core.Models.Relation` objects their child entity and relation type alias.
-
-Returns `IEnumerable`.
-
-### GetByChildId(int id)
-
-Gets a collection of `Umbraco.Core.Models.Relation` objects by their child id.
-
-Returns `IEnumerable`.
-
-### GetById(int id)
-
-Gets a `Umbraco.Core.Models.Relation` object by its id.
-
-Returns `IRelation`.
-
-### GetByParent(IUmbracoEntity parent, string relationTypeAlias)
-
-Gets a collection of `Umbraco.Core.Models.Relation` objects by their parent entity and relation type alias.
-
-Returns `IEnumerable`.
-
-### GetByParent(IUmbracoEntity parent)
-
-Gets a collection of `Umbraco.Core.Models.Relation` objects by their parent entity.
-
-Returns `IEnumerable`.
-
-### GetByParentId(int id)
-
-Gets a collection of `Umbraco.Core.Models.Relation` objects by their parent id.
-
-Returns `IEnumerable`.
-
-### GetByParentOrChildId(int id, string relationTypeAlias)
-
-Gets a collection of `Umbraco.Core.Models.Relation` objects by their parent or child id and relation type alias.
-
-Returns `IEnumerable`.
-
-{% hint style="info" %}
-Using this method will get you all relations regards of it being a child or parent relation.
-{% endhint %}
-
-### GetByParentOrChildId(int id)
-
-Gets a collection of `Umbraco.Core.Models.Relation` objects by their parent or child id.
-
-Returns `IEnumerable`.
-
-{% hint style="info" %}
-Using this method will get you all relations regards of it being a child or parent relation.
-{% endhint %}
-
-### GetByRelationTypeAlias(string relationTypeAlias)
-
-Gets a collection of `Umbraco.Core.Models.Relation` objects by their relation type alias.
-
-Returns `IEnumerable`.
-
-### GetByRelationTypeId(int relationTypeId)
-
-Gets a collection of `Umbraco.Core.Models.Relation` objects by the id of their relation type.
-
-Returns `IEnumerable`.
-
-### GetByRelationTypeName(string relationTypeName)
-
-Gets a collection of `Umbraco.Core.Models.Relation` objects by the name of their relation type.
-
-Returns `IEnumerable`.
-
-### GetChildEntitiesFromRelations(IEnumerable relations)
-
-Gets the child objects from a collection of `IRelation` as a collection of `Umbraco.Core.Models.Entities.IUmbracoEntity`.
-
-Returns `IEnumerable`.
-
-### GetChildEntityFromRelation(IRelation relation)
-
-Gets the child object from a relation as an `Umbraco.Core.Models.Entities.IUmbracoEntity` object.
-
-Returns `IUmbracoEntity`.
-
-### GetEntitiesFromRelation(IRelation relation)
-
-Gets the parent and child objects from a relation as a `System.Tuple` with `Umbraco.Core.Models.Entities.IUmbracoEntity`.
-
-Returns `Tuple`.
-
-### GetEntitiesFromRelations(IEnumerable relations)
-
-Gets the parent and child objects from a collection of relations as a list of `Umbraco.Core.Models.Entities.IUmbracoEntity` objects.
-
-Returns `IEnumerable>`.
-
-### GetParentEntitiesFromRelations(IEnumerable relations)
-
-Gets the parent objects from a collection of relations as a collection of `Umbraco.Core.Models.Entities.IUmbracoEntity`.
-
-Returns `IEnumerable`.
-
-### GetParentEntityFromRelation(IRelation relation)
-
-Gets the parent object from a relation as an `Umbraco.Core.Models.Entities.IUmbracoEntity` object.
-
-### GetRelationTypeByAlias(string alias)
-
-Gets an relation by its alias.
-
-Returns `IRelationType`.
-
-### GetRelationTypeById(Guid id)
-
-Gets a relation type by its Id
-
-Returns `IRelationType`.
-
-### GetRelationTypeById(int id)
-
-Gets a relation type by its id.
-
-Returns `IRelationType`.
-
-### HasRelations(IRelationType relationType)
-
-Checks if any relations exist for the specified relation type.
-
-Returns `bool`.
-
-### IsRelated(int id)
-
-Checks if any relations exist for the specified id.
-
-Returns `void`.
-
-### Relate(int parentId, int childId, IRelationType relationType)
-
-Relates two objects by their ids using the specified relation type.
-
-Returns `IRelation`.
-
-### Relate(IUmbracoEntity parent, IUmbracoEntity child, IRelationType relationType)
-
-Relates two `IUmbracoEntity` objects using the specified relation type.
-
-Returns `IRelation`.
-
-### Relate(IUmbracoEntity parent, IUmbracoEntity child, string relationTypeAlias)
-
-Relates two `IUmbracoEntity` objects using the specified relation type alias.
-
-Returns `IRelation`.
-
-### Relate(int parentId, int childId, string relationTypeAlias)
-
-Relates two `IUmbracoEntity` objects using the specified relation type alias.
-
-Returns `IRelation`.
-
-### Save(IRelation relation)
-
-Saves a relation.
-
-Returns `Void`.
-
-### Save(IRelationType relationType)
-
-Saves a relation type.
-
-Returns `Void`.
-
-## Examples
-
-Below you will examples using the `RelationService`.
-
-### Automatically relate to root node
-
-Odd example, I know.. but why not?
+## Automatically relate to root node
To perform the said task we need a component in which we can register to the `ContentService.Published` event:
-([You can read more about composing Umbraco here](../../../implementation/composing.md))
+[You can read more about composing Umbraco here](../../../implementation/composing.md)
```csharp
using System.Linq;
@@ -357,7 +88,7 @@ If I know `Save and Publish` my `Products` node I get the following result:

-Cool! Now let us try and fetch the data from an API.
+Now let us try and fetch the data from an API.
```csharp
using System;
diff --git a/14/umbraco-cms/reference/management/services/contenttypeservice/retrieving-content-types.md b/14/umbraco-cms/reference/management/services/retrieving-content-types.md
similarity index 64%
rename from 14/umbraco-cms/reference/management/services/contenttypeservice/retrieving-content-types.md
rename to 14/umbraco-cms/reference/management/services/retrieving-content-types.md
index 97462010476..ff0887f6d99 100644
--- a/14/umbraco-cms/reference/management/services/contenttypeservice/retrieving-content-types.md
+++ b/14/umbraco-cms/reference/management/services/retrieving-content-types.md
@@ -1,3 +1,7 @@
+---
+description: Examples on how to retrieve content types and content type containers using the ContentTypeService.
+---
+
# Retrieving content types
## Getting a single content type
@@ -76,3 +80,46 @@ Although the use of a GUID is preferable, you can also use it's numeric ID:
// Check if there are children
bool hasChildren = _contentTypeService.HasChildren(1234);
```
+
+# Retrieving content type container
+
+## Getting a single content type container
+
+You can add content types in three different ways. At the root level, under another content type, or under a _container_ (which is a folder). To obtain a single container, the process is similar to obtaining a single content type. This means that you can search for a container either by its GUID:
+
+```csharp
+// Declare the GUID ID
+Guid guid = new Guid("d3b9cc9a-d471-4465-a89a-112c6bc1e5b4");
+
+// Get a container by its GUID ID
+EntityContainer container = _contentTypeService.GetContainer(guid);
+```
+
+or its numeric counterpart:
+
+```csharp
+// Get a container by its numeric ID
+EntityContainer container = _contentTypeService.GetContainer(1090);
+```
+
+## Getting a list of content type containers
+
+In the same way as you can get the content types of a container, you can get the child containers of another container. This is done by calling the `GetContainers` method with an array of numeric IDs:
+
+```csharp
+// Declare the array of IDs to lookup
+int[] ids = new[] {1090};
+
+// Get the child containers via the content type service
+IEnumerable containers = _contentTypeService.GetContainers(ids);
+```
+
+Also, if the array is empty, all containers will be returned:
+
+```csharp
+// Declare the array of IDs to lookup
+int[] ids = new int[0];
+
+// Get all content type containers
+IEnumerable containers = _contentTypeService.GetContainers(ids);
+```
diff --git a/14/umbraco-cms/reference/management/services/localizationservice/retrieving-languages.md b/14/umbraco-cms/reference/management/services/retrieving-languages.md
similarity index 91%
rename from 14/umbraco-cms/reference/management/services/localizationservice/retrieving-languages.md
rename to 14/umbraco-cms/reference/management/services/retrieving-languages.md
index 3b563c16a54..d05774b4c3b 100644
--- a/14/umbraco-cms/reference/management/services/localizationservice/retrieving-languages.md
+++ b/14/umbraco-cms/reference/management/services/retrieving-languages.md
@@ -1,6 +1,10 @@
+---
+description: Example on how to retrieve languages using the LocalizationService.
+---
+
# Retrieving languages
-### Getting a single language
+## Getting a single language
The localization service contains a number of methods for looking up languages. If you already know the ID of a specific language (eg. the default language has ID `1`), you can use the `GetLanguageById` method to get the reference to that language:
@@ -9,7 +13,7 @@ The localization service contains a number of methods for looking up languages.
ILanguage language1 = _localizationService.GetLanguageById(1);
```
-Alternative, you can look up a language by its iso code via the `GetLanguageByIsoCode` method:
+As an alternative, you can look up a language by its ISO code via the `GetLanguageByIsoCode` method:
```csharp
// Get a reference to the language by its ISO code
@@ -18,9 +22,9 @@ ILanguage language2 = _localizationService.GetLanguageByIsoCode("en-US");
The ISO code is a combination of the two-letter ISO 639-1 language code (lowercase) and two-letter ISO-3166 country code (uppercase). Eg. `en-US` for English in the United States, `en-GB` for English in the United Kingdom and `da-DK` for Danish in Denmark.
-Both methods will return an instance of the [ILanguage](https://apidocs.umbraco.com/v13/csharp/api/Umbraco.Cms.Core.Models.ILanguage.html) interface, which has traditional properties like `Id` and `Key`, but also properties specific to the language like `CultureName`, `CultureInfo` and `IsoCode`. You can see the API reference for further information on the properties of the interface.
+Both methods will return an instance of the [ILanguage](https://apidocs.umbraco.com/v14/csharp/api/Umbraco.Cms.Core.Models.ILanguage.html) interface, which has traditional properties like `Id` and `Key`, but also properties specific to the language like `CultureName`, `CultureInfo` and `IsoCode`. You can see the API reference for further information on the properties of the interface.
-### Getting all languages
+## Getting all languages
If you need instead need a list of all installed languages, you can use the `GetAllLanguages` method. It takes no parameters, and as such a returns a collection of all languages (with no pagination like some of the other services):
diff --git a/14/umbraco-cms/reference/management/services/serverregistrationservice.md b/14/umbraco-cms/reference/management/services/serverregistrationservice.md
deleted file mode 100644
index 478ae8c0cf2..00000000000
--- a/14/umbraco-cms/reference/management/services/serverregistrationservice.md
+++ /dev/null
@@ -1,50 +0,0 @@
-# ServerRegistrationService
-
-The ServerRegistrationService manages server registrations in the database.
-
-[Browse the API documentation for IServerRegistrationService interface](https://apidocs.umbraco.com/v13/csharp/api/Umbraco.Cms.Core.Services.IServerRegistrationService.html).
-
-* **Namespace:** `Umbraco.Cms.Core.Services`
-* **Assembly:** `Umbraco.Core.dll`
-
- All samples in this document will require references to the following dll:
-
-* Umbraco.Core.dll
-
-The Umbraco.Core.dll allows you to reference the Constants classes used in the below examples.
-
-All samples in this document will require the following using statements:
-
-```csharp
-using Umbraco.Cms.Core.Services;
-```
-
-For Razor views:
-
-```csharp
-@using Umbraco.Cms.Core.Services
-```
-
-## Getting the service
-
-### Dependency Injection
-
-If you wish to use the server registration service in a class, you need to specify the IServerRegistrationService interface in your constructor:
-
-```csharp
-public class MyClass
-{
- private IServerRegistrationService _serverRegistrationService;
-
- public MyClass(IServerRegistrationService serverRegistrationService)
- {
- _serverRegistrationService = serverRegistrationService;
- }
-}
-```
-
-In Razor views, you can access the server registration service through the @inject directive:
-
-```csharp
-@inject IServerRegistrationService ServerRegistrationService
-```
diff --git a/14/umbraco-cms/reference/management/services/tagservice.md b/14/umbraco-cms/reference/management/services/tagservice.md
deleted file mode 100644
index a49eab65e33..00000000000
--- a/14/umbraco-cms/reference/management/services/tagservice.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# TagService
-
-Tag service to query for tags in the tags db table.
-
-[Browse the API documentation for ITagService interface](https://apidocs.umbraco.com/v13/csharp/api/Umbraco.Cms.Core.Services.ITagService.html).
-
-* **Namespace:** `Umbraco.Cms.Core.Services`
-* **Assembly:** `Umbraco.Core.dll`
-
-All samples in this document will require references to the following dll:
-
-* Umbraco.Core.dll
-
-All samples in this document will require the following using statements:
-
-```csharp
-using Umbraco.Cms.Core.Services;
-```
-
-## Getting the service
-
-### Dependency Injection
-
-In other cases, you may be able to use Dependency Injection. For instance if you have registered your own class in Umbraco's dependency injection, you can specify the `ITagService` interface in your constructor:
-
-```csharp
-public class MyClass
-{
- private ITagService _tagService;
-
- public MyClass(ITagService tagService)
- {
- _tagService = tagService;
- }
-}
-```
-
-In Razor views, you can access the member service through the `@inject` directive:
-
-```csharp
-@inject ITagService TagService
-```
diff --git a/14/umbraco-cms/reference/management/services/textservice.md b/14/umbraco-cms/reference/management/services/textservice.md
deleted file mode 100644
index 8bc0e7dc7d9..00000000000
--- a/14/umbraco-cms/reference/management/services/textservice.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# TextService
-
-The TextService is the entry point to localize any key in the text storage source for a given culture.
-
-[Browse the API documentation for ILocalizedTextService interface](https://apidocs.umbraco.com/v13/csharp/api/Umbraco.Cms.Core.Services.ILocalizedTextService.html).
-
-* **Namespace:** `Umbraco.Cms.Core.Services`
-* **Assembly:** `Umbraco.Core.dll`
-
- All samples in this document will require references to the following dll:
-
-* Umbraco.Core.dll
-
-All samples in this document will require the following using statements:
-
-```csharp
-using Umbraco.Cms.Core.Services;
-```
-
-## Getting the service
-
-### Dependency Injection
-
-In other cases, you may be able to use Dependency Injection. For instance if you have registered your own class in Umbraco's dependency injection, you can specify the `ILocalizedTextService` interface in your constructor:
-
-```csharp
-public class MyClass
-{
- private ILocalizedTextService _textService;
-
- public MyClass(ILocalizedTextService textService)
- {
- _textService = textService;
- }
-}
-```
-
-In Razor views, you can access the member service through the `@inject` directive:
-
-```csharp
-@inject ILocalizedTextService LocalizedTextService
-```
diff --git a/14/umbraco-cms/reference/management/services/userservice/README.md b/14/umbraco-cms/reference/management/services/userservice/README.md
deleted file mode 100644
index c9658a36de6..00000000000
--- a/14/umbraco-cms/reference/management/services/userservice/README.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# UserService
-
-The UserService acts as a "gateway" to Umbraco data for operations which are related to Users.
-
- * **Namespace:** `Umbraco.Core.Services`
- * **Assembly:** `Umbraco.Core.dll`
-
-All samples listed in this document will require references to the following dll:
-
-* Umbraco.Core.dll
-
-All samples in this document will require the following using statements:
-
-```csharp
-using Umbraco.Core;
-using Umbraco.Core.Models;
-using Umbraco.Core.Services;
-```
-
-## Getting the service
-
-### Services property
-
-If you wish to use the UserService in a class that inherits from one of the Umbraco base classes (eg. `SurfaceController`, `UmbracoApiController` or `UmbracoAuthorizedApiController`), you can access the service through a local `Services` property:
-
-```csharp
-IUserService userService = Services.UserService;
-```
-
-### Dependency Injection
-
-In other cases, you may be able to use Dependency Injection. For instance if you have registered your own class in Umbraco's dependency injection, you can specify the `IUserService` interface in your constructor:
-
-```csharp
-public class MyClass
-{
-
- private IUserService _userService;
-
- public MyClass(IUserService userService)
- {
- _userService = userService;
- }
-
-}
-```
-
-### Static accessor
-
-If neither a `Services` property or Dependency Injection is available, you can also reference the static `Current` class directly:
-
-```csharp
-IUserService userService = Umbraco.Core.Composing.Current.Services.UserService;
-```
-
-
-## Samples
-
-* [**Create a new user**](create-a-new-user.md)
Quick sample showing how to create a new backoffice user; including setting a password, assigning the user to a user group, and setting the name of the user.