Exemplo n.º 1
0
        public async IAsyncEnumerable <ItemDTO> GetAllWithSubTypeAsync()
        {
            /*
             * var itemWithPropAndSubItems = await _context.Item.Join(
             *                                              _context.ItemSubItem,
             *                                              item => item.Id,
             *                                              itemSubItem => itemSubItem.Item.Id,
             *                                              (item, itemSubItem) => new
             *                                              {
             *                                                  SubItemId = itemSubItem.SubItemId,
             *                                                  ItemId = item.Id,
             *                                                  ItemDeletedDate = item.DeletedDate,
             *
             *                                              }
             *                                              ).ToListAsync();
             */

            List <Data.Entities.Item> itemList = await _context.Item.ToListAsync();

            foreach (var item in itemList)
            {
                if (item.DeletedDate is null)
                {
                    IAsyncEnumerable <PropertyDTO> propertyDTOList = _propertyService.GetByItemAsync(item.Id);

                    IAsyncEnumerable <ItemSubItemDTO> itemSubItemlist = _itemSubItemService.GetSubItemByItemAsync(item.Id);

                    List <SubItemDTO> subItemDTOList = new List <SubItemDTO>();

                    await foreach (var itemSubItem in itemSubItemlist)
                    {
                        IAsyncEnumerable <SubItemDTO> subItem = _subItemService.GetByIdAsync(itemSubItem.SubItemId);

                        await foreach (var tempItemSubItem in subItem)
                        {
                            subItemDTOList.Add(tempItemSubItem);
                        }
                    }


                    IAsyncEnumerable <ItemDTO> itemDTO = CloneItemWithSubItem(item, propertyDTOList, subItemDTOList);

                    await foreach (var tempitem in itemDTO)
                    {
                        yield return(tempitem);
                    }
                }
            }
        }
Exemplo n.º 2
0
        public ActionResult <IAsyncEnumerable <ItemSubItemDTO> > GetSubItemByItem(Guid itemId)
        {
            IAsyncEnumerable <ItemSubItemDTO> list = _itemSubItemService.GetSubItemByItemAsync(itemId);

            return(Ok(list));
        }