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)); } }
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); }