Добавлено управление сессиями
This commit is contained in:
@@ -13,24 +13,26 @@ public class TrackAdditionLogService
|
||||
_db = db;
|
||||
}
|
||||
|
||||
public async Task LogAdditionAsync(Guid sharedPlaylistId, string trackId, Guid addedByUserId)
|
||||
public async Task LogAdditionAsync(Guid sharedPlaylistId, string trackId, Guid? addedByUserId, string sessionId)
|
||||
{
|
||||
var log = new TrackAdditionLogEntity
|
||||
var log = new TrackAdditionLog
|
||||
{
|
||||
Id = Guid.NewGuid(),
|
||||
SharedPlaylistId = sharedPlaylistId,
|
||||
TrackId = trackId,
|
||||
AddedByUserId = addedByUserId,
|
||||
AddedAtUtc = DateTime.UtcNow
|
||||
AddedAtUtc = DateTime.UtcNow,
|
||||
SessionId = sessionId
|
||||
};
|
||||
_db.TrackAdditionLogs.Add(log);
|
||||
await _db.SaveChangesAsync();
|
||||
}
|
||||
|
||||
public async Task<bool> IsTrackAddedByUserAsync(Guid sharedPlaylistId, string trackId, Guid userId)
|
||||
public async Task<bool> IsTrackAddedByCurrentUserOrSessionAsync(Guid sharedPlaylistId, string trackId, Guid? userId, string sessionId)
|
||||
{
|
||||
return await _db.TrackAdditionLogs
|
||||
.AnyAsync(l => l.SharedPlaylistId == sharedPlaylistId && l.TrackId == trackId && l.AddedByUserId == userId);
|
||||
.AnyAsync(l => l.SharedPlaylistId == sharedPlaylistId && l.TrackId == trackId &&
|
||||
(userId != null ? l.AddedByUserId == userId : l.SessionId == sessionId));
|
||||
}
|
||||
|
||||
public async Task RemoveLogsForTrackAsync(Guid sharedPlaylistId, string trackId)
|
||||
|
||||
Reference in New Issue
Block a user