public async Task <ActionResult <CardReadDTO> > GetUsersCardById(string id, string cardid)
        {
            var user = await _userRepo.GetOneUser(id);

            if (user != null)
            {
                var card = await _userRepo.GetOneCardOfOneUser(id, cardid);

                if (card != null)
                {
                    var cardReadDTO = new CardReadDTO
                    {
                        CardId = card.CardId,
                        Name   = card.Name,
                        Type   = card.Type,
                        Rarity = card.Rarity,
                        Value  = card.Value,
                    };
                    return(Ok(cardReadDTO));
                }
                else
                {
                    return(NotFound());
                }
            }
            else
            {
                return(NotFound());
            }
        }
        public async Task <ActionResult <CardReadDTO> > GetCardById(string id)
        {
            var card = await _cardRepo.GetOneCard(id);

            if (card != null)
            {
                var cardDTO = new CardReadDTO
                {
                    CardId       = card.CardId,
                    Name         = card.Name,
                    Type         = card.Type,
                    Rarity       = card.Rarity,
                    Rating       = card.Rating,
                    NumOfRatings = card.NumOfRatings,
                    Value        = card.Value,
                    Image        = card.Image
                };
                return(Ok(cardDTO)); //success
            }
            return(NotFound());      //error couldn't find any card
        }
        public async Task <ActionResult <CardReadDTO> > AddCardToUserInventory(string id, CardCreateDTO cardCreateDTO)
        {
            var user = await _userRepo.GetOneUser(id);

            AppCard newCard;

            if (user != null)
            {
                newCard = new AppCard(cardCreateDTO.Rating, cardCreateDTO.NumOfRatings, cardCreateDTO.Rarity)
                {
                    CardId = cardCreateDTO.CardId,
                    Name   = cardCreateDTO.Name,
                    Type   = cardCreateDTO.Type,
                    Image  = cardCreateDTO.Image,
                };
                newCard.UpdateValue();
                await _userRepo.AddOneCardToOneUser(id, newCard.CardId);
            }
            else
            {
                return(NotFound());
            }

            var cardReadDTO = new CardReadDTO
            {
                CardId       = cardCreateDTO.CardId,
                Name         = cardCreateDTO.Name,
                Type         = cardCreateDTO.Type,
                Rarity       = cardCreateDTO.Rarity,
                Rating       = cardCreateDTO.Rating,
                NumOfRatings = cardCreateDTO.NumOfRatings,
                Value        = cardCreateDTO.Value
            };

            // what method to return
            return(CreatedAtAction(nameof(GetUsersCardById), new { id = user.UserId, cardid = newCard.CardId }, cardReadDTO));
        }