Пример #1
0
        public async Task <ActionResult <IEnumerable <Item> > > GetItemsByOwner(int id)
        {
            //IEnumerable<Item> itemQuery;
            var ctx = new TabletopCampaignDBContext();

            var countQuery =
                from owned in ctx.OwnedItem
                group owned by owned.ItemId into g
                select new { ItemId = g.Key, Count = g.Count() };

            //var itemQuery =
            //        from item in ctx.Item
            //        join owned in ctx.OwnedItem on item.ItemId equals owned.ItemId
            //        where owned.InventoryId == id
            //        select new { OwnedItemId = owned.OwnedItemId, ItemId = item.ItemId, InventoryId = owned.InventoryId, Name = item.Name, Weight = item.Weight };

            var itemQuery =
                from count in countQuery.ToList()
                join owned in ctx.OwnedItem on count.ItemId equals owned.ItemId
                join item in ctx.Item on count.ItemId equals item.ItemId
                where owned.InventoryId == id
                //group count by owned.OwnedItemId into g
                //orderby g.Key
                //select g;
                select new { owned.OwnedItemId, item.ItemId, item.Name, item.Weight, count.Count };

            //var itemQuery =
            //    from item in dupQuery.ToList()
            //    select item;

            //SELECT COUNT(OwnedItem.ItemID) AS number, MIN(OwnedItem.OwnedItemID) AS firstOwned FROM OwnedItem
            //WHERE OwnedItem.InventoryID = @keyInventory
            //GROUP BY ItemID

            //var test1 =
            //    from owned in ctx.OwnedItem
            //    where owned.InventoryId == id
            //    group owned by owned.ItemId;

            //var test =
            //    from item in test1
            //    select new { id = item.Key, Count = item.Count() };

            //var test =
            //    from item in ctx.Item
            //    join owned in ctx.OwnedItem on item.ItemId equals owned.ItemId
            //    where owned.InventoryId == id
            //    group item by item.ItemId into itemGroup
            //    select new { OwnedItemId = itemGroup.Key, Count = itemGroup.Count() };

            //need query to get
            //{ownedItemId, count}
            //current one gets itemId instead

            if (itemQuery == null || !itemQuery.Any())
            {
                return(NotFound());
            }
            return(Ok(itemQuery.ToList()));
        }
Пример #2
0
 public CharactersController(TabletopCampaignDBContext context)
 {
     _context = context;
 }
Пример #3
0
 public ItemsController(TabletopCampaignDBContext context)
 {
     _context = context;
 }