Scrobbling rewrite - abstract K+ API requests and more tests
This commit is contained in:
parent
fc4ba4509f
commit
68601eb472
6 changed files with 365 additions and 85 deletions
|
|
@ -29,7 +29,15 @@ public interface IScrobbleRepository
|
|||
Task<IList<ScrobbleError>> GetAllScrobbleErrorsForSeries(int seriesId);
|
||||
Task ClearScrobbleErrors();
|
||||
Task<bool> HasErrorForSeries(int seriesId);
|
||||
Task<ScrobbleEvent?> GetEvent(int userId, int seriesId, ScrobbleEventType eventType);
|
||||
/// <summary>
|
||||
/// Get all events for a specific user and type
|
||||
/// </summary>
|
||||
/// <param name="userId"></param>
|
||||
/// <param name="seriesId"></param>
|
||||
/// <param name="eventType"></param>
|
||||
/// <param name="isNotProcessed">If true, only returned not processed events</param>
|
||||
/// <returns></returns>
|
||||
Task<ScrobbleEvent?> GetEvent(int userId, int seriesId, ScrobbleEventType eventType, bool isNotProcessed = false);
|
||||
Task<IEnumerable<ScrobbleEvent>> GetUserEventsForSeries(int userId, int seriesId);
|
||||
Task<PagedList<ScrobbleEventDto>> GetUserEvents(int userId, ScrobbleEventFilter filter, UserParams pagination);
|
||||
Task<IList<ScrobbleEvent>> GetAllEventsForSeries(int seriesId);
|
||||
|
|
@ -146,10 +154,13 @@ public class ScrobbleRepository : IScrobbleRepository
|
|||
return await _context.ScrobbleError.AnyAsync(n => n.SeriesId == seriesId);
|
||||
}
|
||||
|
||||
public async Task<ScrobbleEvent?> GetEvent(int userId, int seriesId, ScrobbleEventType eventType)
|
||||
public async Task<ScrobbleEvent?> GetEvent(int userId, int seriesId, ScrobbleEventType eventType, bool isNotProcessed = false)
|
||||
{
|
||||
return await _context.ScrobbleEvent.FirstOrDefaultAsync(e =>
|
||||
e.AppUserId == userId && e.SeriesId == seriesId && e.ScrobbleEventType == eventType);
|
||||
return await _context.ScrobbleEvent
|
||||
.Where(e => e.AppUserId == userId && e.SeriesId == seriesId && e.ScrobbleEventType == eventType)
|
||||
.WhereIf(isNotProcessed, e => !e.IsProcessed)
|
||||
.OrderBy(e => e.LastModifiedUtc)
|
||||
.FirstOrDefaultAsync();
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<ScrobbleEvent>> GetUserEventsForSeries(int userId, int seriesId)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue