public async Task <ActionResult <long> > CountItem([FromBody] Opportunity_ItemFilterDTO Opportunity_ItemFilterDTO)
        {
            if (UnAuthorization)
            {
                return(Forbid());
            }
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }
            ItemFilter ItemFilter = new ItemFilter();

            ItemFilter.Id                = Opportunity_ItemFilterDTO.Id;
            ItemFilter.ProductId         = Opportunity_ItemFilterDTO.ProductId;
            ItemFilter.ProductTypeId     = Opportunity_ItemFilterDTO.ProductTypeId;
            ItemFilter.ProductGroupingId = Opportunity_ItemFilterDTO.ProductGroupingId;
            ItemFilter.Code              = Opportunity_ItemFilterDTO.Code;
            ItemFilter.Name              = Opportunity_ItemFilterDTO.Name;
            ItemFilter.ScanCode          = Opportunity_ItemFilterDTO.ScanCode;
            ItemFilter.OtherName         = Opportunity_ItemFilterDTO.OtherName;
            ItemFilter.SalePrice         = Opportunity_ItemFilterDTO.SalePrice;
            ItemFilter.RetailPrice       = Opportunity_ItemFilterDTO.RetailPrice;
            ItemFilter.Search            = Opportunity_ItemFilterDTO.Search;
            ItemFilter.StatusId          = new IdFilter {
                Equal = StatusEnum.ACTIVE.Id
            };

            return(await ItemService.Count(ItemFilter));
        }
        public async Task <ActionResult <List <Opportunity_ItemDTO> > > ListItem([FromBody] Opportunity_ItemFilterDTO Opportunity_ItemFilterDTO)
        {
            if (UnAuthorization)
            {
                return(Forbid());
            }
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }
            ItemFilter ItemFilter = new ItemFilter();

            ItemFilter.Skip              = Opportunity_ItemFilterDTO.Skip;
            ItemFilter.Take              = Opportunity_ItemFilterDTO.Take;
            ItemFilter.OrderBy           = ItemOrder.Id;
            ItemFilter.OrderType         = OrderType.ASC;
            ItemFilter.Selects           = ItemSelect.ALL;
            ItemFilter.Id                = Opportunity_ItemFilterDTO.Id;
            ItemFilter.ProductId         = Opportunity_ItemFilterDTO.ProductId;
            ItemFilter.ProductTypeId     = Opportunity_ItemFilterDTO.ProductTypeId;
            ItemFilter.ProductGroupingId = Opportunity_ItemFilterDTO.ProductGroupingId;
            ItemFilter.Code              = Opportunity_ItemFilterDTO.Code;
            ItemFilter.Name              = Opportunity_ItemFilterDTO.Name;
            ItemFilter.ScanCode          = Opportunity_ItemFilterDTO.ScanCode;
            ItemFilter.OtherName         = Opportunity_ItemFilterDTO.OtherName;
            ItemFilter.SalePrice         = Opportunity_ItemFilterDTO.SalePrice;
            ItemFilter.RetailPrice       = Opportunity_ItemFilterDTO.RetailPrice;
            ItemFilter.Search            = Opportunity_ItemFilterDTO.Search;
            ItemFilter.StatusId          = new IdFilter {
                Equal = StatusEnum.ACTIVE.Id
            };

            List <Item> Items = await ItemService.List(ItemFilter);

            List <Opportunity_ItemDTO> Opportunity_ItemDTOs = Items
                                                              .Select(x => new Opportunity_ItemDTO(x)).ToList();

            return(Opportunity_ItemDTOs);
        }