Beispiel #1
0
        public IActionResult UserSpecificScore(int userId, int eventId)
        {
            var score  = _transActionRepo.UserSpecificScore(userId, eventId);
            var result = new UserScoreDto
            {
                EventId = eventId,
                UserId  = userId,
                Score   = score
            };

            return(Ok(result));
        }
        public IActionResult UserSpecificScore(int userId, int eventId)
        {
            var eventEntity = _unitOfWork.Event.GetById(eventId);
            var score       = _unitOfWork.UserActivity.UserSpecificScore(userId, eventId);
            var result      = new UserScoreDto
            {
                EventId   = eventId,
                UserId    = userId,
                Score     = score,
                EventName = eventEntity.Name
            };

            return(StatusCode(200, new TransActionResponse(result)));
        }
Beispiel #3
0
        public UserScoreDto CalculateScoreForQuiz(Guid userId)
        {
            var score = new UserScoreDto();

            if (userId != Guid.Empty)
            {
                var entriesFromRepo = _context.Entries.Where(b => b.UserId == userId && b.Correct);
                var username        = _context.Users.Where(u => u.Id == userId).FirstOrDefault().Username;
                score.Username = username;
                score.Score    = ((Decimal)entriesFromRepo.Count() / Convert.ToDecimal(Configuration.GetConnectionString("totalNoOfQuizes"))) * 100;

                return(score);
            }

            return(score);
        }
Beispiel #4
0
        public async Task <IActionResult> GetUserScores()
        {
            UserScoreDto model     = new UserScoreDto();
            var          userId    = _identityService.GetUserIdentity();
            var          userScore = await _examContext.UserExamScores.Include(c => c.User)//默认不开启懒加载
                                     .SingleOrDefaultAsync(x => x.UserID == Guid.Parse(userId));

            if (userScore != null)
            {
                model.TrueName    = userScore.User?.TrueName;
                model.TotalScores = userScore.TotalScores;
                model.TypeScores1 = userScore.TypeScores1;
                model.TypeScores2 = userScore.TypeScores2;
                model.TypeScores3 = userScore.TypeScores3;
                model.ranking     = await _examContext.UserExamScores
                                    .Where(o => o.TotalScores > model.TotalScores).CountAsync() + 1;
            }
            else
            {
                return(NotFound());
            }
            return(Ok(model));
        }