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)); }
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; })); }
public async Task <RpsData <bool> > UploadGameScore(ParamUserScore param) { return(await _gameRepository.UploadGameScore(param)); }