Exemplo n.º 1
0
        public async Task <IActionResult> CreatePayment()
        {
            if (_environment.IsProduction())
            {
                return(NotFound());
            }
            IImmutableList <Account> accounts = ImmutableList.Create <Account>();

            try
            {
                accounts = await _aiiaService.GetUserAccounts(User);
            }
            catch (AiiaClientException e)
            {
                // TODO
            }

            return(View(new CreatePaymentViewModel
            {
                Accounts = accounts
            }));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Accounts()
        {
            var currentUserId = User.FindFirst(ClaimTypes.NameIdentifier).Value;
            var user          = _dbContext.Users.FirstOrDefault(x => x.Id == currentUserId);

            var providers = await _aiiaService.GetProviders();

            providers = providers
                        .OrderBy(x => x.CountryCode)
                        .ThenBy(y => y.Name)
                        .ToImmutableList();

            // If user hasn't connected to Aiia or his access token is expired, show empty accounts page
            if (user?.AiiaAccessToken == null || user.AiiaAccessTokenExpires < DateTimeOffset.UtcNow)
            {
                return(View(new AccountsViewModel
                {
                    AccountsGroupedByProvider = null,
                    AiiaConnectUrl = _aiiaService.GetAuthUri(user?.Email).ToString(),
                    EmailEnabled = user?.EmailEnabled ?? false,
                    Providers = providers,
                    Email = user?.Email,
                    ConsentId = user?.AiiaConsentId
                }));
            }

            var accounts = await _aiiaService.GetUserAccounts(User);

            var groupedAccounts     = accounts.ToLookup(x => x.AccountProvider?.Id, x => x);
            var allAccountsSelected = await _aiiaService.AllAccountsSelected(User);

            var model = new AccountsViewModel
            {
                AccountsGroupedByProvider = groupedAccounts,
                AiiaConnectUrl            = _aiiaService.GetAuthUri(user.Email).ToString(),
                JwtToken            = new JwtSecurityTokenHandler().ReadJwtToken(user.AiiaAccessToken),
                RefreshToken        = new JwtSecurityTokenHandler().ReadJwtToken(user.AiiaRefreshToken),
                EmailEnabled        = user.EmailEnabled,
                Providers           = providers,
                ConsentId           = user.AiiaConsentId,
                Email               = user.Email,
                AllAccountsSelected = allAccountsSelected
            };

            return(View(model));
        }