private TrackRanking MapTrackRankingInsertingPosition(TrackRanking trackRanking, int index) => new TrackRanking() { Position = index + 1, Id = trackRanking.Id, TrackId = trackRanking.TrackId, UserId = trackRanking.UserId, Points = trackRanking.Points, CompletedTime = trackRanking.CompletedTime };
private TrackRanking MapTrackRankingWithoutUserInfo(TrackRanking trackRanking) => new TrackRanking() { Position = trackRanking.Position, Id = trackRanking.Id, TrackId = trackRanking.TrackId, UserId = 0, Username = null, Points = trackRanking.Points, CompletedTime = trackRanking.CompletedTime };
private async Task <TrackRanking> MapTrackRankingWithUserInfo(TrackRanking trackRanking) => new TrackRanking() { Position = trackRanking.Position, Id = trackRanking.Id, TrackId = trackRanking.TrackId, UserId = trackRanking.UserId, Username = (await _userRepository.FindAsync(trackRanking.UserId))?.Name, Points = trackRanking.Points, CompletedTime = trackRanking.CompletedTime };
public async Task InitializeRankingIfNotCreatedAsync(int userId, int trackId) { bool userHasRankingInTrack = (await _trackRankingRepository .FindAsync(tr => tr.TrackId == trackId && tr.UserId == userId)) .Any(); if (!userHasRankingInTrack) { var trackRanking = new TrackRanking() { TrackId = trackId, UserId = userId, Points = 0, StartedAtUtc = DateTime.UtcNow, CompletedTime = null }; await _trackRankingRepository.AddAsync(trackRanking); await _unitOfWork.CommitAsync(); } }