Merge remote-tracking branch 'origin/v14/dev' into v14/dev
This commit is contained in:
@@ -19,7 +19,7 @@
|
|||||||
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.0.1" />
|
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.0.1" />
|
||||||
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.1" />
|
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.1" />
|
||||||
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.1" />
|
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.1" />
|
||||||
<PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="8.0.1" />
|
<PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="8.0.0" />
|
||||||
<PackageVersion Include="Microsoft.Extensions.Configuration.Abstractions" Version="8.0.0" />
|
<PackageVersion Include="Microsoft.Extensions.Configuration.Abstractions" Version="8.0.0" />
|
||||||
<PackageVersion Include="Microsoft.Extensions.Configuration.Json" Version="8.0.0" />
|
<PackageVersion Include="Microsoft.Extensions.Configuration.Json" Version="8.0.0" />
|
||||||
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
|
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Umbraco.Cms.Api.Management.ViewModels.Content;
|
using Umbraco.Cms.Api.Management.ViewModels.Content;
|
||||||
using Umbraco.Cms.Api.Management.ViewModels.Document;
|
|
||||||
using Umbraco.Cms.Core.Models.ContentEditing;
|
using Umbraco.Cms.Core.Models.ContentEditing;
|
||||||
using Umbraco.Cms.Core.Models.ContentEditing.Validation;
|
using Umbraco.Cms.Core.Models.ContentEditing.Validation;
|
||||||
using Umbraco.Cms.Core.Models.ContentPublishing;
|
|
||||||
using Umbraco.Cms.Core.Services.OperationStatus;
|
using Umbraco.Cms.Core.Services.OperationStatus;
|
||||||
using Umbraco.Extensions;
|
using Umbraco.Extensions;
|
||||||
|
|
||||||
@@ -63,7 +61,8 @@ public class ContentControllerBase : ManagementApiControllerBase
|
|||||||
.WithTitle("Invalid sorting options")
|
.WithTitle("Invalid sorting options")
|
||||||
.WithDetail("The supplied sorting operations were invalid. Additional details can be found in the log.")
|
.WithDetail("The supplied sorting operations were invalid. Additional details can be found in the log.")
|
||||||
.Build()),
|
.Build()),
|
||||||
ContentEditingOperationStatus.Unknown => StatusCode(StatusCodes.Status500InternalServerError,
|
ContentEditingOperationStatus.Unknown => StatusCode(
|
||||||
|
StatusCodes.Status500InternalServerError,
|
||||||
problemDetailsBuilder
|
problemDetailsBuilder
|
||||||
.WithTitle("Unknown error. Please see the log for more details.")
|
.WithTitle("Unknown error. Please see the log for more details.")
|
||||||
.Build()),
|
.Build()),
|
||||||
@@ -112,125 +111,4 @@ public class ContentControllerBase : ManagementApiControllerBase
|
|||||||
.WithExtension("missingProperties", missingPropertyAliases.ToArray())
|
.WithExtension("missingProperties", missingPropertyAliases.ToArray())
|
||||||
.Build()));
|
.Build()));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected IActionResult ContentPublishingOperationStatusResult(
|
|
||||||
ContentPublishingOperationStatus status,
|
|
||||||
IEnumerable<string>? invalidPropertyAliases = null,
|
|
||||||
IEnumerable<ContentPublishingBranchItemResult>? failedBranchItems = null)
|
|
||||||
=> OperationStatusResult(status, problemDetailsBuilder => status switch
|
|
||||||
{
|
|
||||||
ContentPublishingOperationStatus.ContentNotFound => NotFound(problemDetailsBuilder
|
|
||||||
.WithTitle("The requested content could not be found")
|
|
||||||
.Build()),
|
|
||||||
ContentPublishingOperationStatus.CancelledByEvent => BadRequest(problemDetailsBuilder
|
|
||||||
.WithTitle("Publish cancelled by event")
|
|
||||||
.WithDetail("The publish operation was cancelled by an event.")
|
|
||||||
.Build()),
|
|
||||||
ContentPublishingOperationStatus.ContentInvalid => BadRequest(problemDetailsBuilder
|
|
||||||
.WithTitle("Invalid content")
|
|
||||||
.WithDetail("The specified content had an invalid configuration.")
|
|
||||||
.WithExtension("invalidProperties", invalidPropertyAliases ?? Enumerable.Empty<string>())
|
|
||||||
.Build()),
|
|
||||||
ContentPublishingOperationStatus.NothingToPublish => BadRequest(problemDetailsBuilder
|
|
||||||
.WithTitle("Nothing to publish")
|
|
||||||
.WithDetail("None of the specified cultures needed publishing.")
|
|
||||||
.Build()),
|
|
||||||
ContentPublishingOperationStatus.MandatoryCultureMissing => BadRequest(problemDetailsBuilder
|
|
||||||
.WithTitle("Mandatory culture missing")
|
|
||||||
.WithDetail("Must include all mandatory cultures when publishing.")
|
|
||||||
.Build()),
|
|
||||||
ContentPublishingOperationStatus.HasExpired => BadRequest(problemDetailsBuilder
|
|
||||||
.WithTitle("Content expired")
|
|
||||||
.WithDetail("Could not publish the content because it was expired.")
|
|
||||||
.Build()),
|
|
||||||
ContentPublishingOperationStatus.CultureHasExpired => BadRequest(problemDetailsBuilder
|
|
||||||
.WithTitle("Content culture expired")
|
|
||||||
.WithDetail("Could not publish the content because some of the specified cultures were expired.")
|
|
||||||
.Build()),
|
|
||||||
ContentPublishingOperationStatus.AwaitingRelease => BadRequest(problemDetailsBuilder
|
|
||||||
.WithTitle("Content awaiting release")
|
|
||||||
.WithDetail("Could not publish the content because it was awaiting release.")
|
|
||||||
.Build()),
|
|
||||||
ContentPublishingOperationStatus.CultureAwaitingRelease => BadRequest(problemDetailsBuilder
|
|
||||||
.WithTitle("Content culture awaiting release")
|
|
||||||
.WithDetail(
|
|
||||||
"Could not publish the content because some of the specified cultures were awaiting release.")
|
|
||||||
.Build()),
|
|
||||||
ContentPublishingOperationStatus.InTrash => BadRequest(problemDetailsBuilder
|
|
||||||
.WithTitle("Content in the recycle bin")
|
|
||||||
.WithDetail("Could not publish the content because it was in the recycle bin.")
|
|
||||||
.Build()),
|
|
||||||
ContentPublishingOperationStatus.PathNotPublished => BadRequest(problemDetailsBuilder
|
|
||||||
.WithTitle("Parent not published")
|
|
||||||
.WithDetail("Could not publish the content because its parent was not published.")
|
|
||||||
.Build()),
|
|
||||||
ContentPublishingOperationStatus.ConcurrencyViolation => BadRequest(problemDetailsBuilder
|
|
||||||
.WithTitle("Concurrency violation detected")
|
|
||||||
.WithDetail("An attempt was made to publish a version older than the latest version.")
|
|
||||||
.Build()),
|
|
||||||
ContentPublishingOperationStatus.UnsavedChanges => BadRequest(problemDetailsBuilder
|
|
||||||
.WithTitle("Unsaved changes")
|
|
||||||
.WithDetail(
|
|
||||||
"Could not publish the content because it had unsaved changes. Make sure to save all changes before attempting a publish.")
|
|
||||||
.Build()),
|
|
||||||
ContentPublishingOperationStatus.FailedBranch => BadRequest(problemDetailsBuilder
|
|
||||||
.WithTitle("Failed branch operation")
|
|
||||||
.WithDetail("One or more items in the branch could not complete the operation.")
|
|
||||||
.WithExtension("failedBranchItems", failedBranchItems?.Select(item => new DocumentPublishBranchItemResult
|
|
||||||
{
|
|
||||||
Id = item.Key,
|
|
||||||
OperationStatus = item.OperationStatus
|
|
||||||
}) ?? Enumerable.Empty<DocumentPublishBranchItemResult>())
|
|
||||||
.Build()),
|
|
||||||
ContentPublishingOperationStatus.Failed => BadRequest(problemDetailsBuilder
|
|
||||||
.WithTitle("Publish or unpublish failed")
|
|
||||||
.WithDetail(
|
|
||||||
"An unspecified error occurred while (un)publishing. Please check the logs for additional information.")
|
|
||||||
.Build()),
|
|
||||||
_ => StatusCode(StatusCodes.Status500InternalServerError, "Unknown content operation status."),
|
|
||||||
});
|
|
||||||
|
|
||||||
protected IActionResult ContentCreatingOperationStatusResult(ContentCreatingOperationStatus status)
|
|
||||||
=> OperationStatusResult(status, problemDetailsBuilder => status switch
|
|
||||||
{
|
|
||||||
ContentCreatingOperationStatus.NotFound => NotFound(problemDetailsBuilder
|
|
||||||
.WithTitle("The content type could not be found")
|
|
||||||
.Build()),
|
|
||||||
_ => StatusCode(StatusCodes.Status500InternalServerError, problemDetailsBuilder
|
|
||||||
.WithTitle("Unknown content operation status.")
|
|
||||||
.Build()),
|
|
||||||
});
|
|
||||||
|
|
||||||
protected IActionResult PublicAccessOperationStatusResult(PublicAccessOperationStatus status)
|
|
||||||
=> OperationStatusResult(status, problemDetailsBuilder => status switch
|
|
||||||
{
|
|
||||||
PublicAccessOperationStatus.ContentNotFound => NotFound(problemDetailsBuilder
|
|
||||||
.WithTitle("The content could not be found")
|
|
||||||
.Build()),
|
|
||||||
PublicAccessOperationStatus.ErrorNodeNotFound => NotFound(problemDetailsBuilder
|
|
||||||
.WithTitle("The error page could not be found")
|
|
||||||
.Build()),
|
|
||||||
PublicAccessOperationStatus.LoginNodeNotFound => NotFound(problemDetailsBuilder
|
|
||||||
.WithTitle("The login page could not be found")
|
|
||||||
.Build()),
|
|
||||||
PublicAccessOperationStatus.NoAllowedEntities => BadRequest(problemDetailsBuilder
|
|
||||||
.WithTitle("No allowed entities given")
|
|
||||||
.WithDetail("Both MemberGroups and Members were empty, thus no entities can be allowed.")
|
|
||||||
.Build()),
|
|
||||||
PublicAccessOperationStatus.CancelledByNotification => BadRequest(problemDetailsBuilder
|
|
||||||
.WithTitle("Request cancelled by notification")
|
|
||||||
.WithDetail("The request to save a public access entry was cancelled by a notification handler.")
|
|
||||||
.Build()),
|
|
||||||
PublicAccessOperationStatus.AmbiguousRule => BadRequest(problemDetailsBuilder
|
|
||||||
.WithTitle("Ambiguous Rule")
|
|
||||||
.WithDetail("The specified rule is ambiguous, because both member groups and member names were given.")
|
|
||||||
.Build()),
|
|
||||||
PublicAccessOperationStatus.EntryNotFound => BadRequest(problemDetailsBuilder
|
|
||||||
.WithTitle("Entry not found")
|
|
||||||
.WithDetail("The specified entry was not found.")
|
|
||||||
.Build()),
|
|
||||||
_ => StatusCode(StatusCodes.Status500InternalServerError, problemDetailsBuilder
|
|
||||||
.WithTitle("Unknown content operation status.")
|
|
||||||
.Build()),
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
|
using Microsoft.AspNetCore.Http;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Umbraco.Cms.Api.Management.Controllers.Content;
|
using Umbraco.Cms.Api.Management.Controllers.Content;
|
||||||
using Umbraco.Cms.Api.Management.Routing;
|
using Umbraco.Cms.Api.Management.Routing;
|
||||||
@@ -6,6 +7,7 @@ using Umbraco.Cms.Api.Management.ViewModels.Content;
|
|||||||
using Umbraco.Cms.Api.Management.ViewModels.Document;
|
using Umbraco.Cms.Api.Management.ViewModels.Document;
|
||||||
using Umbraco.Cms.Core;
|
using Umbraco.Cms.Core;
|
||||||
using Umbraco.Cms.Core.Models.ContentEditing;
|
using Umbraco.Cms.Core.Models.ContentEditing;
|
||||||
|
using Umbraco.Cms.Core.Models.ContentPublishing;
|
||||||
using Umbraco.Cms.Core.Services.OperationStatus;
|
using Umbraco.Cms.Core.Services.OperationStatus;
|
||||||
using Umbraco.Cms.Web.Common.Authorization;
|
using Umbraco.Cms.Web.Common.Authorization;
|
||||||
|
|
||||||
@@ -20,7 +22,7 @@ public abstract class DocumentControllerBase : ContentControllerBase
|
|||||||
protected IActionResult DocumentNotFound()
|
protected IActionResult DocumentNotFound()
|
||||||
=> OperationStatusResult(ContentEditingOperationStatus.NotFound, problemDetailsBuilder
|
=> OperationStatusResult(ContentEditingOperationStatus.NotFound, problemDetailsBuilder
|
||||||
=> NotFound(problemDetailsBuilder
|
=> NotFound(problemDetailsBuilder
|
||||||
.WithTitle("The requested Document could not be found")
|
.WithTitle("The document could not be found")
|
||||||
.Build()));
|
.Build()));
|
||||||
|
|
||||||
protected IActionResult DocumentEditingOperationStatusResult<TContentModelBase>(
|
protected IActionResult DocumentEditingOperationStatusResult<TContentModelBase>(
|
||||||
@@ -29,4 +31,114 @@ public abstract class DocumentControllerBase : ContentControllerBase
|
|||||||
ContentValidationResult validationResult)
|
ContentValidationResult validationResult)
|
||||||
where TContentModelBase : ContentModelBase<DocumentValueModel, DocumentVariantRequestModel>
|
where TContentModelBase : ContentModelBase<DocumentValueModel, DocumentVariantRequestModel>
|
||||||
=> ContentEditingOperationStatusResult<TContentModelBase, DocumentValueModel, DocumentVariantRequestModel>(status, requestModel, validationResult);
|
=> ContentEditingOperationStatusResult<TContentModelBase, DocumentValueModel, DocumentVariantRequestModel>(status, requestModel, validationResult);
|
||||||
|
|
||||||
|
protected IActionResult DocumentPublishingOperationStatusResult(
|
||||||
|
ContentPublishingOperationStatus status,
|
||||||
|
IEnumerable<string>? invalidPropertyAliases = null,
|
||||||
|
IEnumerable<ContentPublishingBranchItemResult>? failedBranchItems = null)
|
||||||
|
=> OperationStatusResult(status, problemDetailsBuilder => status switch
|
||||||
|
{
|
||||||
|
ContentPublishingOperationStatus.ContentNotFound => NotFound(problemDetailsBuilder
|
||||||
|
.WithTitle("The requested document could not be found")
|
||||||
|
.Build()),
|
||||||
|
ContentPublishingOperationStatus.CancelledByEvent => BadRequest(problemDetailsBuilder
|
||||||
|
.WithTitle("Publish cancelled by event")
|
||||||
|
.WithDetail("The publish operation was cancelled by an event.")
|
||||||
|
.Build()),
|
||||||
|
ContentPublishingOperationStatus.ContentInvalid => BadRequest(problemDetailsBuilder
|
||||||
|
.WithTitle("Invalid document")
|
||||||
|
.WithDetail("The specified document had an invalid configuration.")
|
||||||
|
.WithExtension("invalidProperties", invalidPropertyAliases ?? Enumerable.Empty<string>())
|
||||||
|
.Build()),
|
||||||
|
ContentPublishingOperationStatus.NothingToPublish => BadRequest(problemDetailsBuilder
|
||||||
|
.WithTitle("Nothing to publish")
|
||||||
|
.WithDetail("None of the specified cultures needed publishing.")
|
||||||
|
.Build()),
|
||||||
|
ContentPublishingOperationStatus.MandatoryCultureMissing => BadRequest(problemDetailsBuilder
|
||||||
|
.WithTitle("Mandatory culture missing")
|
||||||
|
.WithDetail("Must include all mandatory cultures when publishing.")
|
||||||
|
.Build()),
|
||||||
|
ContentPublishingOperationStatus.HasExpired => BadRequest(problemDetailsBuilder
|
||||||
|
.WithTitle("Document expired")
|
||||||
|
.WithDetail("Could not publish the document because it was expired.")
|
||||||
|
.Build()),
|
||||||
|
ContentPublishingOperationStatus.CultureHasExpired => BadRequest(problemDetailsBuilder
|
||||||
|
.WithTitle("Document culture expired")
|
||||||
|
.WithDetail("Could not publish the document because some of the specified cultures were expired.")
|
||||||
|
.Build()),
|
||||||
|
ContentPublishingOperationStatus.AwaitingRelease => BadRequest(problemDetailsBuilder
|
||||||
|
.WithTitle("Document awaiting release")
|
||||||
|
.WithDetail("Could not publish the document because it was awaiting release.")
|
||||||
|
.Build()),
|
||||||
|
ContentPublishingOperationStatus.CultureAwaitingRelease => BadRequest(problemDetailsBuilder
|
||||||
|
.WithTitle("Document culture awaiting release")
|
||||||
|
.WithDetail(
|
||||||
|
"Could not publish the document because some of the specified cultures were awaiting release.")
|
||||||
|
.Build()),
|
||||||
|
ContentPublishingOperationStatus.InTrash => BadRequest(problemDetailsBuilder
|
||||||
|
.WithTitle("Document in the recycle bin")
|
||||||
|
.WithDetail("Could not publish the document because it was in the recycle bin.")
|
||||||
|
.Build()),
|
||||||
|
ContentPublishingOperationStatus.PathNotPublished => BadRequest(problemDetailsBuilder
|
||||||
|
.WithTitle("Parent not published")
|
||||||
|
.WithDetail("Could not publish the document because its parent was not published.")
|
||||||
|
.Build()),
|
||||||
|
ContentPublishingOperationStatus.ConcurrencyViolation => BadRequest(problemDetailsBuilder
|
||||||
|
.WithTitle("Concurrency violation detected")
|
||||||
|
.WithDetail("An attempt was made to publish a version older than the latest version.")
|
||||||
|
.Build()),
|
||||||
|
ContentPublishingOperationStatus.UnsavedChanges => BadRequest(problemDetailsBuilder
|
||||||
|
.WithTitle("Unsaved changes")
|
||||||
|
.WithDetail(
|
||||||
|
"Could not publish the document because it had unsaved changes. Make sure to save all changes before attempting a publish.")
|
||||||
|
.Build()),
|
||||||
|
ContentPublishingOperationStatus.FailedBranch => BadRequest(problemDetailsBuilder
|
||||||
|
.WithTitle("Failed branch operation")
|
||||||
|
.WithDetail("One or more items in the branch could not complete the operation.")
|
||||||
|
.WithExtension("failedBranchItems", failedBranchItems?.Select(item => new DocumentPublishBranchItemResult
|
||||||
|
{
|
||||||
|
Id = item.Key,
|
||||||
|
OperationStatus = item.OperationStatus
|
||||||
|
}) ?? Enumerable.Empty<DocumentPublishBranchItemResult>())
|
||||||
|
.Build()),
|
||||||
|
ContentPublishingOperationStatus.Failed => BadRequest(problemDetailsBuilder
|
||||||
|
.WithTitle("Publish or unpublish failed")
|
||||||
|
.WithDetail(
|
||||||
|
"An unspecified error occurred while (un)publishing. Please check the logs for additional information.")
|
||||||
|
.Build()),
|
||||||
|
_ => StatusCode(StatusCodes.Status500InternalServerError, "Unknown content operation status."),
|
||||||
|
});
|
||||||
|
|
||||||
|
protected IActionResult PublicAccessOperationStatusResult(PublicAccessOperationStatus status)
|
||||||
|
=> OperationStatusResult(status, problemDetailsBuilder => status switch
|
||||||
|
{
|
||||||
|
PublicAccessOperationStatus.ContentNotFound => NotFound(problemDetailsBuilder
|
||||||
|
.WithTitle("The document could not be found")
|
||||||
|
.Build()),
|
||||||
|
PublicAccessOperationStatus.ErrorNodeNotFound => NotFound(problemDetailsBuilder
|
||||||
|
.WithTitle("The error page could not be found")
|
||||||
|
.Build()),
|
||||||
|
PublicAccessOperationStatus.LoginNodeNotFound => NotFound(problemDetailsBuilder
|
||||||
|
.WithTitle("The login page could not be found")
|
||||||
|
.Build()),
|
||||||
|
PublicAccessOperationStatus.NoAllowedEntities => BadRequest(problemDetailsBuilder
|
||||||
|
.WithTitle("No allowed entities given")
|
||||||
|
.WithDetail("Both MemberGroups and Members were empty, thus no entities can be allowed.")
|
||||||
|
.Build()),
|
||||||
|
PublicAccessOperationStatus.CancelledByNotification => BadRequest(problemDetailsBuilder
|
||||||
|
.WithTitle("Request cancelled by notification")
|
||||||
|
.WithDetail("The request to save a public access entry was cancelled by a notification handler.")
|
||||||
|
.Build()),
|
||||||
|
PublicAccessOperationStatus.AmbiguousRule => BadRequest(problemDetailsBuilder
|
||||||
|
.WithTitle("Ambiguous Rule")
|
||||||
|
.WithDetail("The specified rule is ambiguous, because both member groups and member names were given.")
|
||||||
|
.Build()),
|
||||||
|
PublicAccessOperationStatus.EntryNotFound => BadRequest(problemDetailsBuilder
|
||||||
|
.WithTitle("Entry not found")
|
||||||
|
.WithDetail("The specified entry was not found.")
|
||||||
|
.Build()),
|
||||||
|
_ => StatusCode(StatusCodes.Status500InternalServerError, problemDetailsBuilder
|
||||||
|
.WithTitle("Unknown content operation status.")
|
||||||
|
.Build()),
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,6 +56,6 @@ public class PublishDocumentController : DocumentControllerBase
|
|||||||
CurrentUserKey(_backOfficeSecurityAccessor));
|
CurrentUserKey(_backOfficeSecurityAccessor));
|
||||||
return attempt.Success
|
return attempt.Success
|
||||||
? Ok()
|
? Ok()
|
||||||
: ContentPublishingOperationStatusResult(attempt.Status, invalidPropertyAliases: attempt.Result.InvalidPropertyAliases);
|
: DocumentPublishingOperationStatusResult(attempt.Status, invalidPropertyAliases: attempt.Result.InvalidPropertyAliases);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,6 +57,6 @@ public class PublishDocumentWithDescendantsController : DocumentControllerBase
|
|||||||
|
|
||||||
return attempt.Success
|
return attempt.Success
|
||||||
? Ok()
|
? Ok()
|
||||||
: ContentPublishingOperationStatusResult(attempt.Status, failedBranchItems: attempt.Result.FailedItems);
|
: DocumentPublishingOperationStatusResult(attempt.Status, failedBranchItems: attempt.Result.FailedItems);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,6 +58,6 @@ public class UnpublishDocumentController : DocumentControllerBase
|
|||||||
CurrentUserKey(_backOfficeSecurityAccessor));
|
CurrentUserKey(_backOfficeSecurityAccessor));
|
||||||
return attempt.Success
|
return attempt.Success
|
||||||
? Ok()
|
? Ok()
|
||||||
: ContentPublishingOperationStatusResult(attempt.Result);
|
: DocumentPublishingOperationStatusResult(attempt.Result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,16 +18,16 @@ public class ByKeyMediaController : MediaControllerBase
|
|||||||
{
|
{
|
||||||
private readonly IAuthorizationService _authorizationService;
|
private readonly IAuthorizationService _authorizationService;
|
||||||
private readonly IMediaEditingService _mediaEditingService;
|
private readonly IMediaEditingService _mediaEditingService;
|
||||||
private readonly IMediaPresentationModelFactory _mediaPresentationModelFactory;
|
private readonly IMediaPresentationFactory _mediaPresentationFactory;
|
||||||
|
|
||||||
public ByKeyMediaController(
|
public ByKeyMediaController(
|
||||||
IAuthorizationService authorizationService,
|
IAuthorizationService authorizationService,
|
||||||
IMediaEditingService mediaEditingService,
|
IMediaEditingService mediaEditingService,
|
||||||
IMediaPresentationModelFactory mediaPresentationModelFactory)
|
IMediaPresentationFactory mediaPresentationFactory)
|
||||||
{
|
{
|
||||||
_authorizationService = authorizationService;
|
_authorizationService = authorizationService;
|
||||||
_mediaEditingService = mediaEditingService;
|
_mediaEditingService = mediaEditingService;
|
||||||
_mediaPresentationModelFactory = mediaPresentationModelFactory;
|
_mediaPresentationFactory = mediaPresentationFactory;
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("{id:guid}")]
|
[HttpGet("{id:guid}")]
|
||||||
@@ -52,7 +52,7 @@ public class ByKeyMediaController : MediaControllerBase
|
|||||||
return MediaNotFound();
|
return MediaNotFound();
|
||||||
}
|
}
|
||||||
|
|
||||||
MediaResponseModel model = await _mediaPresentationModelFactory.CreateResponseModelAsync(media);
|
MediaResponseModel model = await _mediaPresentationFactory.CreateResponseModelAsync(media);
|
||||||
return Ok(model);
|
return Ok(model);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,12 +14,12 @@ namespace Umbraco.Cms.Api.Management.Controllers.Media.Item;
|
|||||||
public class ItemMediaItemController : MediaItemControllerBase
|
public class ItemMediaItemController : MediaItemControllerBase
|
||||||
{
|
{
|
||||||
private readonly IEntityService _entityService;
|
private readonly IEntityService _entityService;
|
||||||
private readonly IMediaPresentationModelFactory _mediaPresentationModelFactory;
|
private readonly IMediaPresentationFactory _mediaPresentationFactory;
|
||||||
|
|
||||||
public ItemMediaItemController(IEntityService entityService, IMediaPresentationModelFactory mediaPresentationModelFactory)
|
public ItemMediaItemController(IEntityService entityService, IMediaPresentationFactory mediaPresentationFactory)
|
||||||
{
|
{
|
||||||
_entityService = entityService;
|
_entityService = entityService;
|
||||||
_mediaPresentationModelFactory = mediaPresentationModelFactory;
|
_mediaPresentationFactory = mediaPresentationFactory;
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("item")]
|
[HttpGet("item")]
|
||||||
@@ -31,7 +31,7 @@ public class ItemMediaItemController : MediaItemControllerBase
|
|||||||
.GetAll(UmbracoObjectTypes.Media, ids.ToArray())
|
.GetAll(UmbracoObjectTypes.Media, ids.ToArray())
|
||||||
.OfType<IMediaEntitySlim>();
|
.OfType<IMediaEntitySlim>();
|
||||||
|
|
||||||
IEnumerable<MediaItemResponseModel> responseModels = media.Select(_mediaPresentationModelFactory.CreateItemResponseModel);
|
IEnumerable<MediaItemResponseModel> responseModels = media.Select(_mediaPresentationFactory.CreateItemResponseModel);
|
||||||
return await Task.FromResult(Ok(responseModels));
|
return await Task.FromResult(Ok(responseModels));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ namespace Umbraco.Cms.Api.Management.Controllers.Media.RecycleBin;
|
|||||||
[ApiVersion("1.0")]
|
[ApiVersion("1.0")]
|
||||||
public class ChildrenMediaRecycleBinController : MediaRecycleBinControllerBase
|
public class ChildrenMediaRecycleBinController : MediaRecycleBinControllerBase
|
||||||
{
|
{
|
||||||
public ChildrenMediaRecycleBinController(IEntityService entityService, IMediaPresentationModelFactory mediaPresentationModelFactory)
|
public ChildrenMediaRecycleBinController(IEntityService entityService, IMediaPresentationFactory mediaPresentationFactory)
|
||||||
: base(entityService, mediaPresentationModelFactory)
|
: base(entityService, mediaPresentationFactory)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,8 +24,8 @@ public class EmptyMediaRecycleBinController : MediaRecycleBinControllerBase
|
|||||||
IAuthorizationService authorizationService,
|
IAuthorizationService authorizationService,
|
||||||
IBackOfficeSecurityAccessor backOfficeSecurityAccessor,
|
IBackOfficeSecurityAccessor backOfficeSecurityAccessor,
|
||||||
IMediaService mediaService,
|
IMediaService mediaService,
|
||||||
IMediaPresentationModelFactory mediaPresentationModelFactory)
|
IMediaPresentationFactory mediaPresentationFactory)
|
||||||
: base(entityService, mediaPresentationModelFactory)
|
: base(entityService, mediaPresentationFactory)
|
||||||
{
|
{
|
||||||
_authorizationService = authorizationService;
|
_authorizationService = authorizationService;
|
||||||
_backOfficeSecurityAccessor = backOfficeSecurityAccessor;
|
_backOfficeSecurityAccessor = backOfficeSecurityAccessor;
|
||||||
|
|||||||
@@ -22,11 +22,11 @@ namespace Umbraco.Cms.Api.Management.Controllers.Media.RecycleBin;
|
|||||||
[Authorize(Policy = "New" + AuthorizationPolicies.SectionAccessMedia)]
|
[Authorize(Policy = "New" + AuthorizationPolicies.SectionAccessMedia)]
|
||||||
public class MediaRecycleBinControllerBase : RecycleBinControllerBase<MediaRecycleBinItemResponseModel>
|
public class MediaRecycleBinControllerBase : RecycleBinControllerBase<MediaRecycleBinItemResponseModel>
|
||||||
{
|
{
|
||||||
private readonly IMediaPresentationModelFactory _mediaPresentationModelFactory;
|
private readonly IMediaPresentationFactory _mediaPresentationFactory;
|
||||||
|
|
||||||
public MediaRecycleBinControllerBase(IEntityService entityService, IMediaPresentationModelFactory mediaPresentationModelFactory)
|
public MediaRecycleBinControllerBase(IEntityService entityService, IMediaPresentationFactory mediaPresentationFactory)
|
||||||
: base(entityService)
|
: base(entityService)
|
||||||
=> _mediaPresentationModelFactory = mediaPresentationModelFactory;
|
=> _mediaPresentationFactory = mediaPresentationFactory;
|
||||||
|
|
||||||
protected override UmbracoObjectTypes ItemObjectType => UmbracoObjectTypes.Media;
|
protected override UmbracoObjectTypes ItemObjectType => UmbracoObjectTypes.Media;
|
||||||
|
|
||||||
@@ -38,8 +38,8 @@ public class MediaRecycleBinControllerBase : RecycleBinControllerBase<MediaRecyc
|
|||||||
|
|
||||||
if (entity is IMediaEntitySlim mediaEntitySlim)
|
if (entity is IMediaEntitySlim mediaEntitySlim)
|
||||||
{
|
{
|
||||||
responseModel.Variants = _mediaPresentationModelFactory.CreateVariantsItemResponseModels(mediaEntitySlim);
|
responseModel.Variants = _mediaPresentationFactory.CreateVariantsItemResponseModels(mediaEntitySlim);
|
||||||
responseModel.MediaType = _mediaPresentationModelFactory.CreateMediaTypeReferenceResponseModel(mediaEntitySlim);
|
responseModel.MediaType = _mediaPresentationFactory.CreateMediaTypeReferenceResponseModel(mediaEntitySlim);
|
||||||
}
|
}
|
||||||
|
|
||||||
return responseModel;
|
return responseModel;
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ namespace Umbraco.Cms.Api.Management.Controllers.Media.RecycleBin;
|
|||||||
[ApiVersion("1.0")]
|
[ApiVersion("1.0")]
|
||||||
public class RootMediaRecycleBinController : MediaRecycleBinControllerBase
|
public class RootMediaRecycleBinController : MediaRecycleBinControllerBase
|
||||||
{
|
{
|
||||||
public RootMediaRecycleBinController(IEntityService entityService, IMediaPresentationModelFactory mediaPresentationModelFactory)
|
public RootMediaRecycleBinController(IEntityService entityService, IMediaPresentationFactory mediaPresentationFactory)
|
||||||
: base(entityService, mediaPresentationModelFactory)
|
: base(entityService, mediaPresentationFactory)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,8 +20,8 @@ public class ChildrenMediaTreeController : MediaTreeControllerBase
|
|||||||
IDataTypeService dataTypeService,
|
IDataTypeService dataTypeService,
|
||||||
AppCaches appCaches,
|
AppCaches appCaches,
|
||||||
IBackOfficeSecurityAccessor backofficeSecurityAccessor,
|
IBackOfficeSecurityAccessor backofficeSecurityAccessor,
|
||||||
IMediaPresentationModelFactory mediaPresentationModelFactory)
|
IMediaPresentationFactory mediaPresentationFactory)
|
||||||
: base(entityService, userStartNodeEntitiesService, dataTypeService, appCaches, backofficeSecurityAccessor, mediaPresentationModelFactory)
|
: base(entityService, userStartNodeEntitiesService, dataTypeService, appCaches, backofficeSecurityAccessor, mediaPresentationFactory)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ public class MediaTreeControllerBase : UserStartNodeTreeControllerBase<MediaTree
|
|||||||
{
|
{
|
||||||
private readonly AppCaches _appCaches;
|
private readonly AppCaches _appCaches;
|
||||||
private readonly IBackOfficeSecurityAccessor _backofficeSecurityAccessor;
|
private readonly IBackOfficeSecurityAccessor _backofficeSecurityAccessor;
|
||||||
private readonly IMediaPresentationModelFactory _mediaPresentationModelFactory;
|
private readonly IMediaPresentationFactory _mediaPresentationFactory;
|
||||||
|
|
||||||
public MediaTreeControllerBase(
|
public MediaTreeControllerBase(
|
||||||
IEntityService entityService,
|
IEntityService entityService,
|
||||||
@@ -31,12 +31,12 @@ public class MediaTreeControllerBase : UserStartNodeTreeControllerBase<MediaTree
|
|||||||
IDataTypeService dataTypeService,
|
IDataTypeService dataTypeService,
|
||||||
AppCaches appCaches,
|
AppCaches appCaches,
|
||||||
IBackOfficeSecurityAccessor backofficeSecurityAccessor,
|
IBackOfficeSecurityAccessor backofficeSecurityAccessor,
|
||||||
IMediaPresentationModelFactory mediaPresentationModelFactory)
|
IMediaPresentationFactory mediaPresentationFactory)
|
||||||
: base(entityService, userStartNodeEntitiesService, dataTypeService)
|
: base(entityService, userStartNodeEntitiesService, dataTypeService)
|
||||||
{
|
{
|
||||||
_appCaches = appCaches;
|
_appCaches = appCaches;
|
||||||
_backofficeSecurityAccessor = backofficeSecurityAccessor;
|
_backofficeSecurityAccessor = backofficeSecurityAccessor;
|
||||||
_mediaPresentationModelFactory = mediaPresentationModelFactory;
|
_mediaPresentationFactory = mediaPresentationFactory;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override UmbracoObjectTypes ItemObjectType => UmbracoObjectTypes.Media;
|
protected override UmbracoObjectTypes ItemObjectType => UmbracoObjectTypes.Media;
|
||||||
@@ -52,8 +52,8 @@ public class MediaTreeControllerBase : UserStartNodeTreeControllerBase<MediaTree
|
|||||||
responseModel.IsTrashed = entity.Trashed;
|
responseModel.IsTrashed = entity.Trashed;
|
||||||
responseModel.Id = entity.Key;
|
responseModel.Id = entity.Key;
|
||||||
|
|
||||||
responseModel.Variants = _mediaPresentationModelFactory.CreateVariantsItemResponseModels(mediaEntitySlim);
|
responseModel.Variants = _mediaPresentationFactory.CreateVariantsItemResponseModels(mediaEntitySlim);
|
||||||
responseModel.MediaType = _mediaPresentationModelFactory.CreateMediaTypeReferenceResponseModel(mediaEntitySlim);
|
responseModel.MediaType = _mediaPresentationFactory.CreateMediaTypeReferenceResponseModel(mediaEntitySlim);
|
||||||
}
|
}
|
||||||
|
|
||||||
return responseModel;
|
return responseModel;
|
||||||
|
|||||||
@@ -20,8 +20,8 @@ public class RootMediaTreeController : MediaTreeControllerBase
|
|||||||
IDataTypeService dataTypeService,
|
IDataTypeService dataTypeService,
|
||||||
AppCaches appCaches,
|
AppCaches appCaches,
|
||||||
IBackOfficeSecurityAccessor backofficeSecurityAccessor,
|
IBackOfficeSecurityAccessor backofficeSecurityAccessor,
|
||||||
IMediaPresentationModelFactory mediaPresentationModelFactory)
|
IMediaPresentationFactory mediaPresentationFactory)
|
||||||
: base(entityService, userStartNodeEntitiesService, dataTypeService, appCaches, backofficeSecurityAccessor, mediaPresentationModelFactory)
|
: base(entityService, userStartNodeEntitiesService, dataTypeService, appCaches, backofficeSecurityAccessor, mediaPresentationFactory)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,10 +10,10 @@ namespace Umbraco.Cms.Api.Management.Controllers.PartialView.Item;
|
|||||||
[ApiVersion("1.0")]
|
[ApiVersion("1.0")]
|
||||||
public class ItemPartialViewItemController : PartialViewItemControllerBase
|
public class ItemPartialViewItemController : PartialViewItemControllerBase
|
||||||
{
|
{
|
||||||
private readonly IFileItemPresentationModelFactory _fileItemPresentationModelFactory;
|
private readonly IFileItemPresentationFactory _fileItemPresentationFactory;
|
||||||
|
|
||||||
public ItemPartialViewItemController(IFileItemPresentationModelFactory fileItemPresentationModelFactory)
|
public ItemPartialViewItemController(IFileItemPresentationFactory fileItemPresentationFactory)
|
||||||
=> _fileItemPresentationModelFactory = fileItemPresentationModelFactory;
|
=> _fileItemPresentationFactory = fileItemPresentationFactory;
|
||||||
|
|
||||||
[HttpGet("item")]
|
[HttpGet("item")]
|
||||||
[MapToApiVersion("1.0")]
|
[MapToApiVersion("1.0")]
|
||||||
@@ -21,7 +21,7 @@ public class ItemPartialViewItemController : PartialViewItemControllerBase
|
|||||||
public async Task<IActionResult> Item([FromQuery(Name = "path")] HashSet<string> paths)
|
public async Task<IActionResult> Item([FromQuery(Name = "path")] HashSet<string> paths)
|
||||||
{
|
{
|
||||||
paths = paths.Select(path => path.VirtualPathToSystemPath()).ToHashSet();
|
paths = paths.Select(path => path.VirtualPathToSystemPath()).ToHashSet();
|
||||||
IEnumerable<PartialViewItemResponseModel> responseModels = _fileItemPresentationModelFactory.CreatePartialViewItemResponseModels(paths);
|
IEnumerable<PartialViewItemResponseModel> responseModels = _fileItemPresentationFactory.CreatePartialViewItemResponseModels(paths);
|
||||||
return await Task.FromResult(Ok(responseModels));
|
return await Task.FromResult(Ok(responseModels));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,10 +10,10 @@ namespace Umbraco.Cms.Api.Management.Controllers.Script.Item;
|
|||||||
[ApiVersion("1.0")]
|
[ApiVersion("1.0")]
|
||||||
public class ItemScriptItemController : ScriptItemControllerBase
|
public class ItemScriptItemController : ScriptItemControllerBase
|
||||||
{
|
{
|
||||||
private readonly IFileItemPresentationModelFactory _fileItemPresentationModelFactory;
|
private readonly IFileItemPresentationFactory _fileItemPresentationFactory;
|
||||||
|
|
||||||
public ItemScriptItemController(IFileItemPresentationModelFactory fileItemPresentationModelFactory)
|
public ItemScriptItemController(IFileItemPresentationFactory fileItemPresentationFactory)
|
||||||
=> _fileItemPresentationModelFactory = fileItemPresentationModelFactory;
|
=> _fileItemPresentationFactory = fileItemPresentationFactory;
|
||||||
|
|
||||||
[HttpGet("item")]
|
[HttpGet("item")]
|
||||||
[MapToApiVersion("1.0")]
|
[MapToApiVersion("1.0")]
|
||||||
@@ -21,7 +21,7 @@ public class ItemScriptItemController : ScriptItemControllerBase
|
|||||||
public async Task<IActionResult> Item([FromQuery(Name = "path")] HashSet<string> paths)
|
public async Task<IActionResult> Item([FromQuery(Name = "path")] HashSet<string> paths)
|
||||||
{
|
{
|
||||||
paths = paths.Select(path => path.VirtualPathToSystemPath()).ToHashSet();
|
paths = paths.Select(path => path.VirtualPathToSystemPath()).ToHashSet();
|
||||||
IEnumerable<ScriptItemResponseModel> responseModels = _fileItemPresentationModelFactory.CreateScriptItemResponseModels(paths);
|
IEnumerable<ScriptItemResponseModel> responseModels = _fileItemPresentationFactory.CreateScriptItemResponseModels(paths);
|
||||||
return await Task.FromResult(Ok(responseModels));
|
return await Task.FromResult(Ok(responseModels));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,10 +10,10 @@ namespace Umbraco.Cms.Api.Management.Controllers.StaticFile.Item;
|
|||||||
[ApiVersion("1.0")]
|
[ApiVersion("1.0")]
|
||||||
public class ItemStaticFileItemController : StaticFileItemControllerBase
|
public class ItemStaticFileItemController : StaticFileItemControllerBase
|
||||||
{
|
{
|
||||||
private readonly IFileItemPresentationModelFactory _fileItemPresentationModelFactory;
|
private readonly IFileItemPresentationFactory _fileItemPresentationFactory;
|
||||||
|
|
||||||
public ItemStaticFileItemController(IFileItemPresentationModelFactory fileItemPresentationModelFactory)
|
public ItemStaticFileItemController(IFileItemPresentationFactory fileItemPresentationFactory)
|
||||||
=> _fileItemPresentationModelFactory = fileItemPresentationModelFactory;
|
=> _fileItemPresentationFactory = fileItemPresentationFactory;
|
||||||
|
|
||||||
[HttpGet("item")]
|
[HttpGet("item")]
|
||||||
[MapToApiVersion("1.0")]
|
[MapToApiVersion("1.0")]
|
||||||
@@ -21,7 +21,7 @@ public class ItemStaticFileItemController : StaticFileItemControllerBase
|
|||||||
public async Task<IActionResult> Item([FromQuery(Name = "path")] HashSet<string> paths)
|
public async Task<IActionResult> Item([FromQuery(Name = "path")] HashSet<string> paths)
|
||||||
{
|
{
|
||||||
paths = paths.Select(path => path.VirtualPathToSystemPath()).ToHashSet();
|
paths = paths.Select(path => path.VirtualPathToSystemPath()).ToHashSet();
|
||||||
IEnumerable<StaticFileItemResponseModel> responseModels = _fileItemPresentationModelFactory.CreateStaticFileItemResponseModels(paths);
|
IEnumerable<StaticFileItemResponseModel> responseModels = _fileItemPresentationFactory.CreateStaticFileItemResponseModels(paths);
|
||||||
return await Task.FromResult(Ok(responseModels));
|
return await Task.FromResult(Ok(responseModels));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,10 +10,10 @@ namespace Umbraco.Cms.Api.Management.Controllers.Stylesheet.Item;
|
|||||||
[ApiVersion("1.0")]
|
[ApiVersion("1.0")]
|
||||||
public class ItemStylesheetItemController : StylesheetItemControllerBase
|
public class ItemStylesheetItemController : StylesheetItemControllerBase
|
||||||
{
|
{
|
||||||
private readonly IFileItemPresentationModelFactory _fileItemPresentationModelFactory;
|
private readonly IFileItemPresentationFactory _fileItemPresentationFactory;
|
||||||
|
|
||||||
public ItemStylesheetItemController(IFileItemPresentationModelFactory fileItemPresentationModelFactory)
|
public ItemStylesheetItemController(IFileItemPresentationFactory fileItemPresentationFactory)
|
||||||
=> _fileItemPresentationModelFactory = fileItemPresentationModelFactory;
|
=> _fileItemPresentationFactory = fileItemPresentationFactory;
|
||||||
|
|
||||||
[HttpGet("item")]
|
[HttpGet("item")]
|
||||||
[MapToApiVersion("1.0")]
|
[MapToApiVersion("1.0")]
|
||||||
@@ -21,7 +21,7 @@ public class ItemStylesheetItemController : StylesheetItemControllerBase
|
|||||||
public async Task<IActionResult> Item([FromQuery(Name = "path")] HashSet<string> paths)
|
public async Task<IActionResult> Item([FromQuery(Name = "path")] HashSet<string> paths)
|
||||||
{
|
{
|
||||||
paths = paths.Select(path => path.VirtualPathToSystemPath()).ToHashSet();
|
paths = paths.Select(path => path.VirtualPathToSystemPath()).ToHashSet();
|
||||||
IEnumerable<StylesheetItemResponseModel> responseModels = _fileItemPresentationModelFactory.CreateStylesheetItemResponseModels(paths);
|
IEnumerable<StylesheetItemResponseModel> responseModels = _fileItemPresentationFactory.CreateStylesheetItemResponseModels(paths);
|
||||||
return await Task.FromResult(Ok(responseModels));
|
return await Task.FromResult(Ok(responseModels));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ internal static class EntityBuilderExtensions
|
|||||||
{
|
{
|
||||||
builder.WithCollectionBuilder<MapDefinitionCollectionBuilder>()
|
builder.WithCollectionBuilder<MapDefinitionCollectionBuilder>()
|
||||||
.Add<ItemTypeMapDefinition>();
|
.Add<ItemTypeMapDefinition>();
|
||||||
builder.Services.AddUnique<IFileItemPresentationModelFactory, FileItemPresentationModelFactory>();
|
builder.Services.AddUnique<IFileItemPresentationFactory, FileItemPresentationFactory>();
|
||||||
|
|
||||||
return builder;
|
return builder;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ internal static class MediaBuilderExtensions
|
|||||||
{
|
{
|
||||||
internal static IUmbracoBuilder AddMedia(this IUmbracoBuilder builder)
|
internal static IUmbracoBuilder AddMedia(this IUmbracoBuilder builder)
|
||||||
{
|
{
|
||||||
builder.Services.AddTransient<IMediaPresentationModelFactory, MediaPresentationModelFactory>();
|
builder.Services.AddTransient<IMediaPresentationFactory, MediaPresentationFactory>();
|
||||||
builder.Services.AddTransient<IMediaEditingPresentationFactory, MediaEditingPresentationFactory>();
|
builder.Services.AddTransient<IMediaEditingPresentationFactory, MediaEditingPresentationFactory>();
|
||||||
builder.Services.AddTransient<IUrlAssembler, DefaultUrlAssembler>();
|
builder.Services.AddTransient<IUrlAssembler, DefaultUrlAssembler>();
|
||||||
builder.Services.AddScoped<IAbsoluteUrlBuilder, DefaultAbsoluteUrlBuilder>();
|
builder.Services.AddScoped<IAbsoluteUrlBuilder, DefaultAbsoluteUrlBuilder>();
|
||||||
|
|||||||
@@ -9,12 +9,12 @@ using Umbraco.Extensions;
|
|||||||
|
|
||||||
namespace Umbraco.Cms.Api.Management.Factories;
|
namespace Umbraco.Cms.Api.Management.Factories;
|
||||||
|
|
||||||
public class FileItemPresentationModelFactory : IFileItemPresentationModelFactory
|
public class FileItemPresentationFactory : IFileItemPresentationFactory
|
||||||
{
|
{
|
||||||
private readonly FileSystems _fileSystems;
|
private readonly FileSystems _fileSystems;
|
||||||
private readonly IPhysicalFileSystem _physicalFileSystem;
|
private readonly IPhysicalFileSystem _physicalFileSystem;
|
||||||
|
|
||||||
public FileItemPresentationModelFactory(FileSystems fileSystems, IPhysicalFileSystem physicalFileSystem)
|
public FileItemPresentationFactory(FileSystems fileSystems, IPhysicalFileSystem physicalFileSystem)
|
||||||
{
|
{
|
||||||
_fileSystems = fileSystems;
|
_fileSystems = fileSystems;
|
||||||
_physicalFileSystem = physicalFileSystem;
|
_physicalFileSystem = physicalFileSystem;
|
||||||
@@ -2,11 +2,10 @@
|
|||||||
using Umbraco.Cms.Api.Management.ViewModels.Script.Item;
|
using Umbraco.Cms.Api.Management.ViewModels.Script.Item;
|
||||||
using Umbraco.Cms.Api.Management.ViewModels.StaticFile.Item;
|
using Umbraco.Cms.Api.Management.ViewModels.StaticFile.Item;
|
||||||
using Umbraco.Cms.Api.Management.ViewModels.Stylesheet.Item;
|
using Umbraco.Cms.Api.Management.ViewModels.Stylesheet.Item;
|
||||||
using Umbraco.Cms.Core.IO;
|
|
||||||
|
|
||||||
namespace Umbraco.Cms.Api.Management.Factories;
|
namespace Umbraco.Cms.Api.Management.Factories;
|
||||||
|
|
||||||
public interface IFileItemPresentationModelFactory
|
public interface IFileItemPresentationFactory
|
||||||
{
|
{
|
||||||
IEnumerable<PartialViewItemResponseModel> CreatePartialViewItemResponseModels(IEnumerable<string> path);
|
IEnumerable<PartialViewItemResponseModel> CreatePartialViewItemResponseModels(IEnumerable<string> path);
|
||||||
|
|
||||||
@@ -7,7 +7,7 @@ using Umbraco.Cms.Core.Models.Entities;
|
|||||||
|
|
||||||
namespace Umbraco.Cms.Api.Management.Factories;
|
namespace Umbraco.Cms.Api.Management.Factories;
|
||||||
|
|
||||||
public interface IMediaPresentationModelFactory
|
public interface IMediaPresentationFactory
|
||||||
{
|
{
|
||||||
Task<MediaResponseModel> CreateResponseModelAsync(IMedia media);
|
Task<MediaResponseModel> CreateResponseModelAsync(IMedia media);
|
||||||
|
|
||||||
@@ -14,8 +14,8 @@ using Umbraco.Extensions;
|
|||||||
|
|
||||||
namespace Umbraco.Cms.Api.Management.Factories;
|
namespace Umbraco.Cms.Api.Management.Factories;
|
||||||
|
|
||||||
internal sealed class MediaPresentationModelFactory
|
internal sealed class MediaPresentationFactory
|
||||||
: ContentPresentationFactoryBase<IMediaType, IMediaTypeService>, IMediaPresentationModelFactory
|
: ContentPresentationFactoryBase<IMediaType, IMediaTypeService>, IMediaPresentationFactory
|
||||||
{
|
{
|
||||||
private readonly IUmbracoMapper _umbracoMapper;
|
private readonly IUmbracoMapper _umbracoMapper;
|
||||||
private readonly ContentSettings _contentSettings;
|
private readonly ContentSettings _contentSettings;
|
||||||
@@ -23,7 +23,7 @@ internal sealed class MediaPresentationModelFactory
|
|||||||
private readonly IAbsoluteUrlBuilder _absoluteUrlBuilder;
|
private readonly IAbsoluteUrlBuilder _absoluteUrlBuilder;
|
||||||
private readonly IMediaTypeService _mediaTypeService;
|
private readonly IMediaTypeService _mediaTypeService;
|
||||||
|
|
||||||
public MediaPresentationModelFactory(
|
public MediaPresentationFactory(
|
||||||
IUmbracoMapper umbracoMapper,
|
IUmbracoMapper umbracoMapper,
|
||||||
IOptions<ContentSettings> contentSettings,
|
IOptions<ContentSettings> contentSettings,
|
||||||
MediaUrlGeneratorCollection mediaUrlGenerators,
|
MediaUrlGeneratorCollection mediaUrlGenerators,
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
namespace Umbraco.Cms.Core.Services.OperationStatus;
|
|
||||||
|
|
||||||
public enum ContentCreatingOperationStatus
|
|
||||||
{
|
|
||||||
Success,
|
|
||||||
NotFound
|
|
||||||
}
|
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Asp.Versioning.Mvc" />
|
<PackageReference Include="Asp.Versioning.Mvc" />
|
||||||
<PackageReference Include="Asp.Versioning.Mvc.ApiExplorer" />
|
<PackageReference Include="Asp.Versioning.Mvc.ApiExplorer" />
|
||||||
<PackageReference Include="Dazinator.Extensions.FileProviders" />
|
<PackageReference Include="Dazinator.Extensions.FileProviders" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" />
|
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" />
|
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" />
|
||||||
|
|||||||
Reference in New Issue
Block a user