public async Task <IActionResult> Me(CancellationToken cancellationToken) { var emailClaim = HttpContext.User.GetEmail(); var nameClaim = HttpContext.User.GetName(); var phoneClaim = HttpContext.User.GetMobilePhone(); if (string.IsNullOrEmpty(emailClaim)) { return(BadRequest("No email provided.")); } var user = new Domain.ApplicationUser(); try { user = await _userRetrievalService.GetUserByEmailAsync(emailClaim, null, cancellationToken); } catch (Services.Exceptions.NotFoundException) { user = await _userManagementService.CreateNewUserAsync( nameClaim, emailClaim, phoneClaim ); } return(Ok(new UserDto(user))); }