public async Task <IActionResult> Post([FromBody] UserModel userModel) { if (!ModelState.IsValid) { logger.LogInformation($"Invalid model state: {string.Concat(ModelState.Values.Select(x => x.Errors.Select(r => r.ErrorMessage)))}"); return(BadRequest(ModelState)); } var authenticationResult = await authenticationStrategy.Authenticate(userModel, HttpContext.GetMobileHeader()); if (authenticationResult.Succeed) { var authenticatedUser = await authenticationStrategy.GetAuthenticatedUser(); return(Ok(authenticatedUser)); } else { return(BadRequest(authenticationResult.Error)); } }