public IEnumerable <DTOProducts> GetProdutsForCatalog(int productType_id, HeatingFloorFilter filter)
        {
            string productOptSql = EmbeddedResourceManager.GetString(typeof(ProductsService), DTOPath.DTOProductOptionsSql) + " where p.productType_id = @productType_id";

            IEnumerable <DTOProductOptions> productsOptions = database.ExucuteQuery <DTOProductOptions>(productOptSql, new { productType_id });

            if (productsOptions != null)
            {
                productsOptions = filterService.ApplyHeatingFloorFilter(filter, productsOptions);

                IEnumerable <string> product_ids = productsOptions.Select(x => x.product_id.ToString()).Distinct();

                string productSql = EmbeddedResourceManager.GetString(typeof(ProductsService), DTOPath.DTOProductSql) + " where p.product_id in @product_ids";

                IEnumerable <DTOProducts> products = database.ExucuteQuery <DTOProducts>(productSql, new { product_ids });

                products = filterService.ApplyManyfacturersFilter(filter.manufacturer.Select(x => x.manufacturer_id).ToArray(), products);

                return(products);
            }
            else
            {
                throw new ArgumentNullException(nameof(productsOptions));
            }
        }
Exemple #2
0
        public IEnumerable <DTOProductOptions> ApplyHeatingFloorFilter(HeatingFloorFilter _filter,
                                                                       IEnumerable <DTOProductOptions> products)
        {
            if (_filter != null)
            {
                return(products.Where(x =>
                                      x.power >= (_filter.power_min ?? decimal.MinValue) &&
                                      x.power <= (_filter.power_max ?? decimal.MaxValue) &&
                                      x.price >= (_filter.price_min ?? decimal.MinValue) &&
                                      x.price <= (_filter.price_max ?? decimal.MaxValue) &&
                                      x.layingArea >= (_filter.layingArea_min ?? decimal.MinValue) &&
                                      x.layingArea <= (_filter.layingArea_max ?? decimal.MaxValue)));
            }

            return(products);
        }
Exemple #3
0
        public HeatingFloorFilter GetHeatingFloorFilter(int productType_id)
        {
            string resultSql = "Embedded.DTO.HeatingFloorFilter.sql";

            string sql = EmbeddedResourceManager.GetString(typeof(HeatingFloorFilter), resultSql);


            SqlMapper.GridReader result = dbConnection.QueryMultiple(sql, new { productType_id });

            var minMax = result.Read <(decimal power_min, decimal power_max, decimal price_min, decimal price_max, decimal
                                       layingArea_min, decimal layingArea_max)>().FirstOrDefault();


            List <Manufacturers> manufacturersList = new List <Manufacturers>();

            List <(string man_titile, int man_id)> manufacturers = result.Read <(string man_titile, int man_id)>().ToList();

            manufacturers.ForEach(x => {
                manufacturersList.Add(new Manufacturers {
                    manufacturer_id   = x.man_id,
                    manufacturer_name = x.man_titile
                });
            });

            HeatingFloorFilter filter = new HeatingFloorFilter()
            {
                power_max      = minMax.power_max,
                power_min      = minMax.power_min,
                layingArea_max = minMax.layingArea_max,
                layingArea_min = minMax.layingArea_min,
                price_max      = minMax.price_max,
                price_min      = minMax.price_min,
                manufacturer   = manufacturersList.ToArray()
            };

            return(filter);
        }
        public IEnumerable <DTOProductOptions> GetProductOptionFiltred(int product_id, HeatingFloorFilter filter)
        {
            string sql = EmbeddedResourceManager.GetString(typeof(ProductsService), DTOPath.DTOProductOptionsSql) + " where po.product_id = @product_id";

            IEnumerable <DTOProductOptions> productOptionList = database.ExucuteQuery <DTOProductOptions>(sql, new { product_id });

            productOptionList = filterService.ApplyHeatingFloorFilter(filter, productOptionList);

            return(productOptionList);
        }
 public IEnumerable <DTOProducts> GetProdutsForCatalog([FromBody] HeatingFloorFilter filter, int productType_id)
 {
     return(heatingFloorService.GetProdutsForCatalog(productType_id, filter));
 }
 public IEnumerable <DTOProductOptions> GetHeatingFloorProductOptionFiltred([FromBody] HeatingFloorFilter filter,
                                                                            int product_id)
 {
     return(heatingFloorService.GetProductOptionFiltred(product_id, filter));
 }