public async Task <ActionResult <string> > Login(AccountInputModel model) { if (ModelState.IsValid) { var user = await userManager.FindByNameAsync(model.Email); if (user == null) { return(BadRequest(ErrorResult.Create("Wrong email/password"))); } // This doesn't count login failures towards account lockout // To enable password failures to trigger account lockout, set lockoutOnFailure: true var result = await signInManager.CheckPasswordSignInAsync(user, model.Password, lockoutOnFailure : false); if (result.Succeeded) { var jwt = JwtTokenGenerator.Generate(model.Email, configuration["AuthToken:Issuer"], configuration["AuthToken:Key"]); logger.LogInformation("User logged in."); return(jwt); } if (result.RequiresTwoFactor) { return(BadRequest(new List <Error>() { new Error() { Name = "2fa", Message = "Require LoginWith 2fa" } })); } if (result.IsLockedOut) { return(BadRequest(new List <Error>() { new Error() { Name = "Lockout", Message = "User account locked out" } })); } else { return(BadRequest(new List <Error>() { new Error() { Name = "InvalidLogin", Message = "Invalid login attempt." } })); } } return(BadRequest(ModelState)); }
public async Task <ActionResult <GameStartResponse> > Start([FromBody] GameStartRequest model) { switch (model.Type) { case GameType.Dice: if (model.Bet == null || model.Bet.Length < 1 || model.Bet.Length > 5 || model.Bet.Any(x => x < 1 || x > 6)) { return(BadRequest(ErrorResult.Create("Invalid Bet"))); } break; case GameType.TossCoin: if (model.Bet == null || model.Bet.Length != 1 || model.Bet.Single() < 0 || model.Bet.Single() > 1) { return(BadRequest(ErrorResult.Create("Invalid Bet"))); } break; default: throw new NotImplementedException(); } var commit = await randomContributorService.Commit(DateTime.UtcNow.Ticks.ToString()); var list = new List <SignedItem> { new SignedItem() { Type = UserType.Contributor, PubKey = model.PubKey, Nonce = model.Nonce.ToString(), Sign = model.Sign }, commit.ToSignedItem() }; var tx = await protocol.CreateTransaction(list, ChaosProtocolSettings.ByGameType(model.Type)); var rs = new GameStartResponse() { GameId = Guid.NewGuid().ToString("n"), ValidationTx = tx.Id, GameType = model.Type, Bet = model.Bet, BetAmount = model.BetAmount, Items = tx.Items, IpfsHash = tx.Anchor?.Data }; var game = cache.Set(rs.GameId, rs); return(rs); }
public void OnActionExecuting(ActionExecutingContext context) { if (context.ModelState.IsValid) { return; } var errors = context .ModelState .Values .SelectMany(x => x.Errors.Select(e => e.ErrorMessage)) .ToList(); var result = ErrorResult .Create("00009", "Validation Errors", errors); context.Result = new BadRequestObjectResult(result); }
protected HttpResponseMessage CreateErrorResponse(HttpStatusCode statusCode, string message) { return(Request.CreateResponse(statusCode, ErrorResult.Create(message))); }