Пример #1
0
        public async Task <IActionResult> AddCard(DeckDetailsViewModel model)
        {
            int cardId;
            int deckId;

            if (int.TryParse(model.CardIdToAdd, out cardId) && int.TryParse(model.DeckId, out deckId))
            {
                var mapping = await _DataAccess.DeckDataAccess.GetDeckCardMappingAsync(deckId, cardId);

                if (mapping != null)
                {
                    mapping.Count++;
                    await _DataAccess.DeckDataAccess.UpsertDeckCardMappingAsync(mapping);
                }
                else
                {
                    mapping        = new DeckCardMapping();
                    mapping.CardId = cardId;
                    mapping.DeckId = deckId;
                    mapping.Count  = 1;
                    await _DataAccess.DeckDataAccess.UpsertDeckCardMappingAsync(mapping);
                }
            }
            return(RedirectToAction("Edit", model));
        }
Пример #2
0
        public async Task <IActionResult> IncreaseCardCount(string dId, string cId)
        {
            int cardId;
            int deckId;

            if (int.TryParse(cId, out cardId) && int.TryParse(dId, out deckId))
            {
                var mapping = await _DataAccess.DeckDataAccess.GetDeckCardMappingAsync(deckId, cardId);

                if (mapping != null)
                {
                    mapping.Count++;
                    await _DataAccess.DeckDataAccess.UpsertDeckCardMappingAsync(mapping);
                }
                else
                {
                    mapping        = new DeckCardMapping();
                    mapping.CardId = cardId;
                    mapping.DeckId = deckId;
                    mapping.Count  = 1;
                    await _DataAccess.DeckDataAccess.UpsertDeckCardMappingAsync(mapping);
                }
            }
            var model = new DeckDetailsViewModel();

            model.DeckId = dId;
            return(RedirectToAction("Edit", model));
        }
Пример #3
0
        public async Task <IActionResult> AddToDeck(SearchDetailsViewModel model)
        {
            int deckId;

            if (int.TryParse(model.DeckId, out deckId))
            {
                var card = await _DataAccess.CardDataAccess.GetCardByNameAsync(model.Name);

                if (card == null)
                {
                    var apiCard = await _YGOProDeckAccess.GetCardByNameAsync(model.Name);

                    if (apiCard.CardImages != null && apiCard.CardImages.Count > 0)
                    {
                        apiCard.ImageBytes = _YGOProDeckAccess.GetCardImage(apiCard.CardImages.First());
                    }
                    card = await _DataAccess.CardDataAccess.Upsert(apiCard);
                }
                var userId = User.FindFirstValue(ClaimTypes.NameIdentifier); // will give the user's userId
                if (string.IsNullOrWhiteSpace(userId))
                {
                    return(RedirectToAction("Details", model));
                }
                var userInventory = await _DataAccess.UserInventoryDataAccess.GetUserInventoryByUserAsync(userId);

                var userCardMapping = _DataAccess.CardDataAccess.GetSpecificCardMappingForUserAsync(userInventory.Id, card.Id);
                if (userCardMapping == null)
                {
                    var cardmapping = new InventoryCardMapping();
                    cardmapping.CardId          = card.Id;
                    cardmapping.UserInventoryId = userInventory.Id;
                    cardmapping.Count           = 1;
                    await _DataAccess.CardDataAccess.UpsertCardMappingAsync(cardmapping);
                }
                var mapping = await _DataAccess.DeckDataAccess.GetDeckCardMappingAsync(deckId, card.Id);

                if (mapping != null)
                {
                    mapping.Count++;
                    await _DataAccess.DeckDataAccess.UpsertDeckCardMappingAsync(mapping);
                }
                else
                {
                    mapping        = new DeckCardMapping();
                    mapping.CardId = card.Id;
                    mapping.DeckId = deckId;
                    mapping.Count  = 1;
                    await _DataAccess.DeckDataAccess.UpsertDeckCardMappingAsync(mapping);
                }
            }
            return(RedirectToAction("Details", model));
        }
Пример #4
0
        public async Task <DeckCardMapping> UpsertDeckCardMappingAsync(DeckCardMapping deckCardMapping)
        {
            var mapping = _context.DeckCardMappings.FirstOrDefault(x => x.DeckId == deckCardMapping.DeckId && x.CardId == deckCardMapping.CardId);

            if (mapping != null)
            {
                mapping.Count = deckCardMapping.Count;
            }
            else
            {
                mapping        = new DeckCardMapping();
                mapping.Count  = 1;
                mapping.CardId = deckCardMapping.CardId;
                mapping.DeckId = deckCardMapping.DeckId;
                _context.DeckCardMappings.Add(mapping);
            }
            await _context.SaveChangesAsync();

            return(mapping);
        }