Пример #1
0
 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
 };
Пример #2
0
 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
 };
Пример #3
0
 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
 };
Пример #4
0
        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();
            }
        }