public async Task <ActionResult> UpdateUserCardInfo([FromBody] JObject objJson)
        {
            try
            {
                if (string.IsNullOrEmpty(Convert.ToString(Request.Headers["api_key"])))
                {
                    return(StatusCode(StatusCodes.Status401Unauthorized, (new { Status = "Error", Error = "Invalid ApiKey" })));
                }

                string strUserId = UserLoginSessionKeys.GetUserIdByApiKey(_appDbContext, Guid.Parse(Request.Headers["api_key"]));
                if (string.IsNullOrEmpty(strUserId))
                {
                    return(StatusCode(StatusCodes.Status401Unauthorized, (new { Status = "Error", Error = "Invalid ApiKey" })));
                }

                var objUserCardInfoDetails = from uci in _appDbContext.UserCardInfo
                                             where (uci.Id == Convert.ToInt32(objJson.SelectToken("usercardinfoid")) && uci.UserId == strUserId)
                                             select uci;

                if (objUserCardInfoDetails.Count() <= 0)
                {
                    return(StatusCode(StatusCodes.Status401Unauthorized, (new { Status = "Error", Error = "Card info doesn’t exist or Invalid User." })));
                }

                clsAppCrypt objclsAppCrypt = new clsAppCrypt(configuration);

                UserCardInfo objUserCardInfo = new UserCardInfo();
                objUserCardInfo.Id              = Convert.ToInt32(objJson.SelectToken("usercardinfoid"));
                objUserCardInfo.NameOnCard      = Convert.ToString(objJson.SelectToken("nameoncard"));
                objUserCardInfo.CardNumber      = objclsAppCrypt.EncryptTripleDES(Convert.ToString(objJson.SelectToken("cardnumber")));
                objUserCardInfo.ExpiryDate      = Convert.ToString(objJson.SelectToken("expirydate"));
                objUserCardInfo.CardType        = Convert.ToString(objJson.SelectToken("cardtype"));
                objUserCardInfo.Issuer          = Convert.ToString(objJson.SelectToken("issuer"));
                objUserCardInfo.SecurityNumber  = objclsAppCrypt.EncryptTripleDES(Convert.ToString(objJson.SelectToken("securitynumber")));
                objUserCardInfo.LastUpdatedDate = DateTime.UtcNow;

                _appDbContext.UserCardInfo.Attach(objUserCardInfo);
                _appDbContext.Entry(objUserCardInfo).Property("NameOnCard").IsModified      = true;
                _appDbContext.Entry(objUserCardInfo).Property("CardNumber").IsModified      = true;
                _appDbContext.Entry(objUserCardInfo).Property("ExpiryDate").IsModified      = true;
                _appDbContext.Entry(objUserCardInfo).Property("CardType").IsModified        = true;
                _appDbContext.Entry(objUserCardInfo).Property("Issuer").IsModified          = true;
                _appDbContext.Entry(objUserCardInfo).Property("SecurityNumber").IsModified  = true;
                _appDbContext.Entry(objUserCardInfo).Property("LastUpdatedDate").IsModified = true;
                int returnVal = await _appDbContext.SaveChangesAsync();

                if (returnVal > 0)
                {
                    return(Ok(new { Status = "OK", Detail = "Card Info Updated." }));
                }
                else
                {
                    return(StatusCode(StatusCodes.Status500InternalServerError, (new { Status = "Error", Error = "Internal Server error. Please contact customer support" })));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, (new { Status = "Error", Error = "Internal Server error. Please contact customer support", SystemError = ex.Message })));
            }
        }
        public async Task <ActionResult> AddUserCardInfo([FromBody] JObject objJson)
        {
            try
            {
                if (string.IsNullOrEmpty(Convert.ToString(Request.Headers["api_key"])))
                {
                    return(StatusCode(StatusCodes.Status401Unauthorized, (new { Status = "Error", Error = "Invalid ApiKey" })));
                }

                string strUserId = UserLoginSessionKeys.GetUserIdByApiKey(_appDbContext, Guid.Parse(Request.Headers["api_key"]));
                if (string.IsNullOrEmpty(strUserId))
                {
                    return(StatusCode(StatusCodes.Status401Unauthorized, (new { Status = "Error", Error = "Invalid ApiKey" })));
                }

                clsAppCrypt objclsAppCrypt = new clsAppCrypt(configuration);

                UserCardInfo objUserCardInfo = new UserCardInfo();
                objUserCardInfo.UserId         = strUserId;
                objUserCardInfo.NameOnCard     = Convert.ToString(objJson.SelectToken("nameoncard"));
                objUserCardInfo.CardNumber     = objclsAppCrypt.EncryptTripleDES(Convert.ToString(objJson.SelectToken("cardnumber")));
                objUserCardInfo.ExpiryDate     = Convert.ToString(objJson.SelectToken("expirydate"));
                objUserCardInfo.CardType       = Convert.ToString(objJson.SelectToken("cardtype"));
                objUserCardInfo.Issuer         = Convert.ToString(objJson.SelectToken("issuer"));
                objUserCardInfo.SecurityNumber = objclsAppCrypt.EncryptTripleDES(Convert.ToString(objJson.SelectToken("securitynumber")));
                objUserCardInfo.AddedDate      = DateTime.UtcNow;
                await _appDbContext.UserCardInfo.AddAsync(objUserCardInfo);

                int returnVal = await _appDbContext.SaveChangesAsync();

                if (returnVal > 0)
                {
                    return(Ok(new { Status = "OK", Detail = "Card Info Added." }));
                }
                else
                {
                    return(StatusCode(StatusCodes.Status500InternalServerError, (new { Status = "Error", Error = "Internal Server error. Please contact customer support" })));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, (new { Status = "Error", Error = "Internal Server error. Please contact customer support", SystemError = ex.Message })));
            }
        }