public void CheckLyrics(List <Lyric> lyrics, LyricCheckProperty checkProperty = LyricCheckProperty.All) { if (lyrics == null) { throw new ArgumentNullException(nameof(lyrics)); } if (lyricChecker == null) { throw new NullReferenceException(nameof(lyricChecker)); } // re-calculate and add foreach (var lyric in lyrics) { // create report record if not have. if (!BindableReports.Contains(lyric)) { BindableReports.Add(lyric, new LyricCheckReport(lyric)); } var report = BindableReports[lyric]; if (checkProperty.HasFlag(LyricCheckProperty.Time)) { report.TimeInvalid = lyricChecker.CheckInvalidLyricTime(lyric); } if (checkProperty.HasFlag(LyricCheckProperty.TimeTag)) { report.InvalidTimeTags = lyricChecker.CheckInvalidTimeTags(lyric); } if (checkProperty.HasFlag(LyricCheckProperty.Ruby)) { report.InvalidRubyTags = lyricChecker.CheckInvalidRubyTags(lyric); } if (checkProperty.HasFlag(LyricCheckProperty.Romaji)) { report.InvalidRomajiTags = lyricChecker.CheckInvalidRomajiTags(lyric); } } }
public void CheckLyric(Lyric lyric, LyricCheckProperty checkProperty = LyricCheckProperty.All) => CheckLyrics(new List <Lyric> { lyric }, checkProperty);