public override void OnActionExecuting(ActionExecutingContext context) { if (!context.ModelState.IsValid) { context.Result = _responseService.GenerateResponse(context.ModelState); } }
public async Task <IActionResult> GetToken([FromBody] GetTokenModel model) { var handler = _handlerFactory(model.GrantType); if (handler == null) { return(_responseService.GenerateResponse(HttpStatusCode.BadRequest, $"Grant Type \"{model.GrantType}\" is not supported.")); } var result = await handler.Authenticate(model); if (result == null) { return(_responseService.GenerateResponse(HttpStatusCode.BadRequest, "The credentials provided were invalid.")); } if (result.RequiresTwoFactor || result.RequiresExternal) { return(_responseService.GenerateResponse(HttpStatusCode.BadRequest, result)); } if (result.IsLockedOut) { return(_responseService.GenerateResponse(HttpStatusCode.BadRequest, "This account has been locked out, please try again later.")); } if (result.User == null) { return(_responseService.GenerateResponse(HttpStatusCode.BadRequest, "The credentials provided were invalid.")); } var token = await _jwtService.GenerateToken(result.User); return(_responseService.GenerateResponse(HttpStatusCode.OK, token)); }
public async Task <IActionResult> Index(int page = 1, int size = 10, string search = null, string sort = null) { var result = await _userRepository.SearchUsers(page, size, search, sort); var model = new UserListModel { Items = result.Items.Select(MapUser), Page = result.Page, Size = result.Size, TotalPages = result.TotalPages, TotalCount = result.TotalCount, HasNextPage = result.HasNextPage, HasPreviousPage = result.HasPreviousPage, Search = search, Sort = sort }; return(_responseService.GenerateResponse(HttpStatusCode.OK, model)); }
public async Task <IActionResult> GetProfile() { var user = await _userRepository.GetUserById(HttpContext.User.Identity.Name); if (user == null) { return(_responseService.GenerateResponse(HttpStatusCode.NotFound, "User could not be found.")); } var model = new UserModel { Id = user.Id.ToString(), EmailAddress = user.EmailAddress, FirstName = user.FirstName, LastName = user.LastName, DateOfBirth = user.DateOfBirth, IsLockedOut = user.IsLockedOut, HasPassword = user.HasPassword, EmailConfirmed = user.EmailConfirmed, TwoFactorEnabled = user.TwoFactorEnabled, Picture = user.Picture, Roles = user.Roles, Logins = user.Logins.Select(a => new ExternalLoginModel(a.Provider, a.ExternalId)) }; return(_responseService.GenerateResponse(HttpStatusCode.OK, model)); }