public void FillProductList()
        {
            if (SelectedSearchId == 0)
            {
                return;
            }
            ProductViewModels.Clear();
            Products = new List <ProductDto>();
            GetProductBySearchTypeDto requestDto = new GetProductBySearchTypeDto
            {
                ProductSearchTypeId = SelectedSearchId
            };

            switch (SelectedSearchId)
            {
            case 3:
                requestDto.ExtraParams = new Dictionary <string, string>
                {
                    { "ZoneId", UserContext.GetUserZoneId().ToString() }
                };
                break;

            default:
                requestDto.ExtraParams = null;
                break;
            }

            Products = _restApiClient.GetProductBySearchId(requestDto);
            var porductsModels = Products.Select(ProductViewModel.FromRest);

            foreach (var model in porductsModels)
            {
                ProductViewModels.Add(model);
            }
        }
        public List <Product> GetProductsByCriteria(GetProductBySearchTypeDto getProductBySearchTypeDto)
        {
            IEnumerable <ProductDto> productDtos = new List <ProductDto>();

            if (getProductBySearchTypeDto == null)
            {
                return(new List <Product>());
            }

            switch (getProductBySearchTypeDto.ProductSearchTypeId)
            {
            case 1:
                productDtos = _productDao.GetAllProducts();
                break;

            case 2:
                productDtos = _productDao.GetAllActiveProductsWithStatus(new ProductStatus().Active.Id);
                break;

            case 3:
                if (getProductBySearchTypeDto.ExtraParams == null || !getProductBySearchTypeDto.ExtraParams.ContainsKey("ZoneId"))
                {
                    productDtos = new List <ProductDto>();
                    break;
                }

                var zones = _zoneService.GetAllChildZones(int.Parse(getProductBySearchTypeDto.ExtraParams["ZoneId"]));

                productDtos = _productDao.GetAllActiveProductsForZones(zones.Select(x => x.ToDto()).ToList());
                break;

            case 4:
                productDtos = _productDao.GetAllActiveProductsWithStatus(new ProductStatus().Missing.Id);
                break;

            default:
                productDtos = new List <ProductDto>();
                break;
            }

            List <Product> products = new List <Product>();

            foreach (var productDto in productDtos)
            {
                Product product = Product.FromDto(productDto);

                product.Zone  = _zoneService.GetZoneById(productDto.ZoneId);
                product.Owner = _ownerService.GetOwnerById(productDto.OwnerId);

                products.Add(product);
            }

            return(products);
        }
 public List <ProductDto> GetProductBySearchId(GetProductBySearchTypeDto getProductBySearchTypeDto)
 {
     return(CallRestApiWithPost <List <ProductDto>, GetProductBySearchTypeDto>("/Product/GetProductBySearchId/", getProductBySearchTypeDto));
 }
Exemple #4
0
        public ActionResult <List <ProductModel> > GetProductBySearchId([FromBody] GetProductBySearchTypeDto getProductBySearchTypeDto)
        {
            var results = _productService.GetProductsByCriteria(getProductBySearchTypeDto);

            return(Ok(results.Select(ProductModel.FormDomain)));
        }