You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Lidarr/src/Lidarr.Api.V1/Tracks/RetagTrackResource.cs

55 lines
1.6 KiB

using System.Collections.Generic;
using System.Linq;
using Lidarr.Http.REST;
namespace Lidarr.Api.V1.Tracks
{
public class TagDifference
{
public string Field { get; set; }
public string OldValue { get; set; }
public string NewValue { get; set; }
}
public class RetagTrackResource : RestResource
{
public int ArtistId { get; set; }
public int AlbumId { get; set; }
public List<int> TrackNumbers { get; set; }
public int TrackFileId { get; set; }
public string Path { get; set; }
public List<TagDifference> Changes { get; set; }
}
public static class RetagTrackResourceMapper
{
public static RetagTrackResource ToResource(this NzbDrone.Core.MediaFiles.RetagTrackFilePreview model)
{
if (model == null)
{
return null;
}
return new RetagTrackResource
{
ArtistId = model.ArtistId,
AlbumId = model.AlbumId,
TrackNumbers = model.TrackNumbers.ToList(),
TrackFileId = model.TrackFileId,
Path = model.Path,
Changes = model.Changes.Select(x => new TagDifference
{
Field = x.Key,
OldValue = x.Value.Item1,
NewValue = x.Value.Item2
}).ToList()
};
}
public static List<RetagTrackResource> ToResource(this IEnumerable<NzbDrone.Core.MediaFiles.RetagTrackFilePreview> models)
{
return models.Select(ToResource).ToList();
}
}
}