public JsonResult AddCard(int cardNumber, CardAmounts cardAmounts)//List<int> where, int howMany, string newDeck)
        {
            try
            {
                if (!User.Identity.IsAuthenticated)
                {
                    return(new CustomJsonResult(new List <string> {
                        "Please Log In "
                    }));
                }
                else
                {
                    IDbConnection db      = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString);
                    var           idCheck = $@"SELECT ID FROM Users WHERE Email = '{User.Identity.Name}'";
                    var           id      = db.Query <int>(idCheck).First();

                    if (cardAmounts.LibraryAmount != cardAmounts.OrigionalLibraryAmount)
                    {
                        _cardData.UpdateLibraryCardAmount(cardNumber, id, cardAmounts.LibraryAmount, cardAmounts.CurrentRecordId);
                    }
                    _cardData.UpdateDeckCardAmounts(cardAmounts.DeckInfo, cardNumber, id);
                }


                return(new CustomJsonResult {
                    Data = "test", JsonRequestBehavior = JsonRequestBehavior.AllowGet
                });
            }
            catch (Exception ex)
            {
                return(new CustomJsonResult(new List <string> {
                    ex.Message
                }));
            }
        }
        public CardAmounts GetCardAmountForUser(int cardId, int userId)
        {
            string users     = (userId == 3 || userId == 4) ? "3, 4" : userId.ToString();
            var    amounts   = new CardAmounts();
            var    sqlString = $@"SELECT Name FROM Cards WHERE ID = {cardId}";

            amounts.CardId                 = cardId;
            amounts.CardName               = Connection.Query <string>(sqlString, transaction: Transaction).FirstOrDefault();
            sqlString                      = $@"SELECT Amount FROM Library WHERE UserId IN ({users}) AND CardId = {cardId} AND IsActive = 1";
            amounts.LibraryAmount          = Connection.Query <int>(sqlString, transaction: Transaction).FirstOrDefault();
            sqlString                      = $@"SELECT LibraryId FROM Library WHERE UserId IN ({users}) AND CardId = {cardId} AND IsActive = 1";
            amounts.CurrentRecordId        = Connection.Query <int>(sqlString, transaction: Transaction).FirstOrDefault();
            amounts.OrigionalLibraryAmount = amounts.LibraryAmount;
            sqlString                      = $@"SELECT n.Id AS DeckId, DeckName, ISNULL(Amount, 0) AS DeckAmount, ISNULL(Amount,0) AS OrigionalDeckAmount, DecksId AS CurrentRecordId FROM DeckNames n LEFT JOIN Decks d ON d.DeckId = n.ID AND d.CardId = {cardId} AND d.IsActive = 1 WHERE n.UserId = {userId}";
            amounts.DeckInfo               = Connection.Query <CardAmountsPerDeck>(sqlString, transaction: Transaction).ToList();
            amounts.DeckInfo.Add(new CardAmountsPerDeck {
                CurrentRecordId = 0, DeckId = 0, DeckName = "", DeckAmount = 0, OrigionalDeckAmount = 0
            });
            return(amounts);
        }
        public JsonResult GetAddInfo(int cardId)
        {
            try
            {
                IDbConnection db      = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString);
                string        idCheck = $@"SELECT ID FROM Users WHERE Email = '{User.Identity.Name}'";
                var           id      = db.Query <int>(idCheck).First();
                CardAmounts   results = _cardData.GetCardAmountForUser(cardId, id);

                return(new CustomJsonResult {
                    Data = results, JsonRequestBehavior = JsonRequestBehavior.AllowGet
                });
            }
            catch (Exception ex)
            {
                return(new CustomJsonResult(new List <string> {
                    ex.Message
                }));
            }
        }