* add custom index to collection items * add custom collection order to ui * cleanup
36 lines
1.0 KiB
C#
36 lines
1.0 KiB
C#
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using ErsatzTV.Application.MediaCollections.Commands;
|
|
using MediatR;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
namespace ErsatzTV.Controllers
|
|
{
|
|
[ApiController]
|
|
[ApiExplorerSettings(IgnoreApi = true)]
|
|
public class SortController : ControllerBase
|
|
{
|
|
private readonly IMediator _mediator;
|
|
|
|
public SortController(IMediator mediator) => _mediator = mediator;
|
|
|
|
[HttpPost("media/collections/{collectionId}/items")]
|
|
public Task SortCollectionItems(
|
|
int collectionId,
|
|
[FromForm]
|
|
SortedMediaItemIds sortedMediaItemIds)
|
|
{
|
|
var ids = sortedMediaItemIds.Item.Map(int.Parse).ToList();
|
|
|
|
var request = new UpdateCollectionCustomOrder(
|
|
collectionId,
|
|
ids.Map(i => new MediaItemCustomOrder(i, ids.IndexOf(i))).ToList());
|
|
|
|
return _mediator.Send(request);
|
|
}
|
|
}
|
|
|
|
public record SortedMediaItemIds(List<string> Item);
|
|
}
|