コード例 #1
0
        public async Task <ActionResult <BankAccount> > PostBankAccount(BankAccountPostModel
                                                                        bankAccountPostModel)
        {
            String jwt = Request.Headers["Authorization"];

            jwt = jwt.Substring(7);
            //Decode jwt and get payload
            var stream    = jwt;
            var handler   = new JwtSecurityTokenHandler();
            var jsonToken = handler.ReadToken(stream);
            var tokenS    = jsonToken as JwtSecurityToken;
            //I can get Claims using:
            var     email   = tokenS.Claims.First(claim => claim.Type == "email").Value;
            Account account = _context.Accounts.SingleOrDefault(p => p.Email == email);

            if (account == null)
            {
                return(BadRequest());
            }

            BankAccount bankAccount = new BankAccount()
            {
                BankId        = bankAccountPostModel.BankId,
                AccountId     = account.Id,
                OwnerName     = bankAccountPostModel.OwnerName,
                AccountNumber = bankAccountPostModel.AccountNumber,
                BranchName    = bankAccountPostModel.BranchName,
            };

            _context.BankAccounts.Add(bankAccount);
            await _context.SaveChangesAsync();

            return(Ok());
        }
コード例 #2
0
 private void AssertData(BankAccountPostModel postModel, BankAccountGetModel getModel)
 {
     Assert.AreEqual(postModel.AccountNumber, getModel.AccountNumber);
     Assert.AreEqual(postModel.BankId, getModel.BankId);
     Assert.AreEqual(postModel.CurrencyId, getModel.CurrencyId);
     Assert.AreEqual(postModel.Iban, getModel.Iban);
     Assert.AreEqual(postModel.Name, getModel.Name);
     Assert.AreEqual(postModel.IsDefault, getModel.IsDefault);
     Assert.AreEqual(postModel.Swift, getModel.Swift);
     Assert.NotNull(getModel.Metadata);
 }
コード例 #3
0
        public async Task <IActionResult> PutBankAccount(int id, BankAccountPostModel
                                                         bankAccountPostModel)
        {
            String jwt = Request.Headers["Authorization"];

            jwt = jwt.Substring(7);
            //Decode jwt and get payload
            var stream    = jwt;
            var handler   = new JwtSecurityTokenHandler();
            var jsonToken = handler.ReadToken(stream);
            var tokenS    = jsonToken as JwtSecurityToken;
            //I can get Claims using:
            var     email   = tokenS.Claims.First(claim => claim.Type == "email").Value;
            Account account = _context.Accounts.Include(p => p.BankAccounts)
                              .SingleOrDefault(p => p.Email == email);

            if (account == null)
            {
                return(BadRequest());
            }
            BankAccount bankAccount = account.BankAccounts.SingleOrDefault(p => p.Id == id);

            bankAccount.BankId                = bankAccountPostModel.BankId;
            bankAccount.OwnerName             = bankAccountPostModel.OwnerName;
            bankAccount.AccountNumber         = bankAccountPostModel.AccountNumber;
            bankAccount.BranchName            = bankAccountPostModel.BranchName;
            _context.Entry(bankAccount).State = EntityState.Modified;
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!BankAccountExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }
            return(Ok());
        }
コード例 #4
0
 /// <inheritdoc />
 public ApiResult <BankAccountGetModel> Post(BankAccountPostModel model)
 {
     return(Post <BankAccountPostModel, BankAccountGetModel>(model));
 }
コード例 #5
0
 /// <inheritdoc />
 public Task <ApiResult <BankAccountGetModel> > PostAsync(BankAccountPostModel model, CancellationToken cancellationToken = default)
 {
     return(PostAsync <BankAccountPostModel, BankAccountGetModel>(model, cancellationToken));
 }