Files
ersatztv/ErsatzTV/Controllers/SortController.cs
T
Jason DoveandGitHub 4953617f79 custom collection playback order (#64)
* add custom index to collection items

* add custom collection order to ui

* cleanup
2021-03-12 19:24:28 +00:00

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);
}