Exemplo n.º 1
0
        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)));
        }