song-of-the-day/song_of_the_day/SongValidators/UriBasedSongValidatorBase.cs

24 lines
693 B
C#

using System.Text.RegularExpressions;
public abstract class UriBasedSongValidatorBase : SongValidatorBase
{
public abstract string UriValidatorRegex { get; }
public UriBasedSongValidatorBase(ILogger logger, SpotifyApiClient spotifyApiClient) : base(logger, spotifyApiClient)
{ }
public Match GetUriMatch(Uri songUri)
{
var regexp = new Regex(UriValidatorRegex, RegexOptions.IgnoreCase);
return regexp.Match(songUri.ToString());
}
public override async Task<bool> CanValidateUriAsync(Uri songUri)
{
var result = await Task.Run(() =>
{
return GetUriMatch(songUri).Success;
});
return result;
}
}