40 lines
1.0 KiB
C#
40 lines
1.0 KiB
C#
|
using System;
|
||
|
|
||
|
using SpotifyAPI.Web;
|
||
|
|
||
|
namespace Selector.Cache {
|
||
|
|
||
|
public class CurrentlyPlayingDTO {
|
||
|
public CurrentlyPlayingContext Context { get; set; }
|
||
|
public string Username { get; set; }
|
||
|
|
||
|
public FullTrack Track { get; set; }
|
||
|
public FullEpisode Episode { get; set; }
|
||
|
|
||
|
public static explicit operator CurrentlyPlayingDTO(ListeningChangeEventArgs e)
|
||
|
{
|
||
|
if(e.Current.Item is FullTrack track)
|
||
|
{
|
||
|
return new()
|
||
|
{
|
||
|
Context = e.Current,
|
||
|
Username = e.Username,
|
||
|
Track = track
|
||
|
};
|
||
|
}
|
||
|
else if (e.Current.Item is FullEpisode episode)
|
||
|
{
|
||
|
return new()
|
||
|
{
|
||
|
Context = e.Current,
|
||
|
Username = e.Username,
|
||
|
Episode = episode
|
||
|
};
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
throw new ArgumentException("Unknown item item");
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|