public IActionResult Get(string set)
        {
            var service = new SetService();
            var setData = service.Find(set);
            var cards   = _context.CardItems.Where(x => x.SetName == setData.Value.Name);

            var userId = User.FindFirstValue(ClaimTypes.NameIdentifier);

            if (userId != null)
            {
                var inventoryItems = _context.InventoryItems.Where(x => x.UserId == userId);
                var data           = from c in cards
                                     join i in inventoryItems on c.Id equals i.Id into ci
                                     from pos in ci.DefaultIfEmpty()
                                     select new CardItemViewData
                {
                    Id          = c.Id,
                    Name        = c.Name,
                    ManaCost    = c.ManaCost,
                    ImageUrl    = c.ImageUrl,
                    InInventory = pos != null
                };

                var model = new CardItemViewModel {
                    Items = data
                };
                return(Json(model));
            }
            else
            {
                var data  = cards.ProjectToType <CardItemViewData>();
                var model = new CardItemViewModel {
                    Items = data
                };
                return(Json(model));
            }
        }
        public void FindTest()
        {
            var setDto = new SetDto()
            {
                Block   = "block1",
                Booster = new object[2]
                {
                    new JValue("booster1"),
                    new JArray()
                    {
                        new JValue("booster2"),
                        new JValue("booster3"),
                        new JArray()
                        {
                            new JValue("booster4"),
                            new JValue("booster5")
                        }
                    }
                },
                Border             = "border1",
                Code               = "code1",
                Expansion          = "expansion1",
                GathererCode       = "gathererCode1",
                MagicCardsInfoCode = "magicCardsInfoCode1",
                Name               = "name1",
                OldCode            = "oldCode1",
                OnlineOnly         = true,
                ReleaseDate        = "2016, 1, 1"
            };

            // Test the FindAsync method.
            var moqAdapter = new Mock <IMtgApiServiceAdapter>();

            moqAdapter
            .SetupSequence(x => x.WebGetAsync <RootSetDto>(It.IsAny <Uri>()))
            .Throws <ArgumentNullException>()
            .Throws(new MtgApiException <BadRequestException>("bad request"))
            .Throws(new MtgApiException <ForbiddenException>("forbidden"))
            .Throws(new MtgApiException <InternalServerErrorException>("server error"))
            .Throws(new MtgApiException <NotFoundException>("not found"))
            .Throws(new MtgApiException <ServiceUnavailableException>("unavailable"))
            .Throws <Exception>()
            .ReturnsAsync(new RootSetDto()
            {
                Set = setDto
            });

            var service = new SetService(moqAdapter.Object, ApiVersion.V1_0, false);

            var result = service.Find("code1");

            Assert.False(result.IsSuccess);
            Assert.Equal("Value cannot be null.", result.Exception.Message);

            result = service.Find("code1");
            Assert.False(result.IsSuccess);
            Assert.Equal("bad request", result.Exception.Message);

            result = service.Find("code1");
            Assert.False(result.IsSuccess);
            Assert.Equal("forbidden", result.Exception.Message);

            result = service.Find("code1");
            Assert.False(result.IsSuccess);
            Assert.Equal("server error", result.Exception.Message);

            result = service.Find("code1");
            Assert.False(result.IsSuccess);
            Assert.Equal("not found", result.Exception.Message);

            result = service.Find("code1");
            Assert.False(result.IsSuccess);
            Assert.Equal("unavailable", result.Exception.Message);

            result = service.Find("code1");
            Assert.False(result.IsSuccess);
            Assert.IsType <Exception>(result.Exception);

            result = service.Find("code1");
            Assert.True(result.IsSuccess);
            Assert.Null(result.Exception);
            Assert.NotNull(result.Value);
        }