Пример #1
0
        public async Task <IdentityResult> UpdateUserCard(string username, UserCardRequestViewModel userCardModel)
        {
            ApplicationUser user = await _userManager.FindByNameAsync(username);

            if (user == null)
            {
                return(IdentityResult.Failed($"User '{username}' not found."));
            }

            CreditCard card = await _context.Cards.FirstOrDefaultAsync(c => c.CardNumber == userCardModel.CardNumber);

            if (card == null)
            {
                return(IdentityResult.Failed($"Credit card '{userCardModel.CardNumber}' not found."));
            }

            user.UserInfo.CardNumber       = userCardModel.CardNumber;
            user.UserInfo.CardDateOfExpire =
                DateTime.ParseExact(userCardModel.CardDateOfExpire, "MM/yy", CultureInfo.InvariantCulture).Date;
            user.UserInfo.CardOwnerFullName = userCardModel.CardOwnerFullName;
            user.UserInfo.CardCVV2Key       = userCardModel.CardCVV2Key;

            try
            {
                var result = await _userManager.UpdateAsync(user);

                return(result);
            }
            catch (DbUpdateException ex)
            {
                _logger.Error("UserRepository.UpdateUserCard", ex.InnerException.InnerException);
                return(IdentityResult.Failed(ex.InnerException.InnerException.Message));
            }
        }
Пример #2
0
        public async Task <IHttpActionResult> UpdateCard(string username, [FromBody] UserCardRequestViewModel userCardModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            IdentityResult result = await _repo.UpdateUserCard(username, userCardModel);

            IHttpActionResult errorResult = GetErrorResult(result);

            return(errorResult == null?Ok() : errorResult);
        }