示例#1
0
        public async Task <RpsData <bool> > UploadGameScore(ParamUserScore param)
        {
            var entity = await _context.UserScores.AnyAsync(x => x.UserId == param.Id && x.Gate == param.Gate)
                ? await _context.UserScores.SingleAsync(x => x.UserId == param.Id && x.Gate == param.Gate)
                : _context.UserScores.Attach(new UserScore()
            {
                CreateDate = DateTime.Now,
                UserId     = param.Id,
                Gate       = param.Gate,
                Status     = ScoreStatusEnum.未通关,
                Score      = param.Score
            }).Entity;

            var gameGate = await _context.GameGates.SingleAsync(x => x.Gate == param.Gate);

            if (param.Score > entity.Score)
            {
                entity.Score = param.Score;
            }
            if (entity.Score >= gameGate.PassScore)
            {
                entity.Status = ScoreStatusEnum.通关;
            }


            await _context.SaveChangesAsync();

            return(RpsData <bool> .Ok(true));
        }
示例#2
0
 public async Task <IActionResult> UploadGameScore([FromBody] ParamUserScore paramUserScore)
 {
     return(await ActionWrapAsync(async() =>
     {
         ResultData <RpsData <bool> > result = new ResultData <RpsData <bool> >();
         var param = HttpContext.User.GetUserBase(paramUserScore);
         result.Data = await _gameService.UploadGameScore(param);
         return result;
     }));
 }
示例#3
0
 public async Task <RpsData <bool> > UploadGameScore(ParamUserScore param)
 {
     return(await _gameRepository.UploadGameScore(param));
 }