public async Task <DbEntity_User> CreateAsync(CreateDto_User newUser) { var createdUser = Mapper.Map <DbEntity_User>(newUser); var success = await CreateAsync(createdUser); return(createdUser); }
public async Task <IActionResult> ValidateCASTicket([FromQuery] string service, [FromQuery] string ticket) { try { if (string.IsNullOrWhiteSpace(service)) { service = AuthConfig.LoginUrl; } if (string.IsNullOrWhiteSpace(ticket)) { throw new NotAuthorizedException(); } var response = await _authService.ValidateCASTicketAsync(service, ticket); var userId = response.ServiceResponse.AuthenticationSuccess.Attributes.KsuPersonWildcatId; DbEntity_User user; try { user = await _userService.GetByIdAsync(userId); } catch (NotFoundException) { var newUser = new CreateDto_User(response.ServiceResponse.AuthenticationSuccess.Attributes); user = await _userService.CreateAsync(newUser); await _userService.SaveChangesAsync(); } var authDtoUser = Mapper.Map <AuthDto_User>(user); var newToken = _authService.BuildToken(authDtoUser); Response.Headers.Add("Access-Control-Expose-Headers", "Authorization"); Response.Headers.Add("Authorization", newToken); return(Ok(authDtoUser)); } catch (NotAuthorizedException) { return(StatusCode(StatusCodes.Status401Unauthorized)); } catch (Exception ex) { return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message)); } }