public List <ProductCategory> Get(int productId)
        {
            try
            {
                List <ProductCategory> productCategories = new List <ProductCategory>();

                IEnumerable <dto.ProductCategory> dto = _productCategoryRepository.Get(productId);

                foreach (dto.ProductCategory item in dto)
                {
                    ProductCategory productCategory = new ProductCategory(_categoryService.Get(item.CategoryId));
                    productCategory.Id = item.Id;
                    productCategory.ParentCategoryTypeId = item.ParentCategoryProductId;

                    productCategory.AddFiles(_filesService.GetByProductCategory(productCategory.Id));

                    if (item.ParentCategoryProductId is null)
                    {
                        productCategories.Add(productCategory);
                    }
                    else
                    {
                        // IEnumerable<ProductCategory> props = productCategories.Where(x => x.Id == item.ParentCategoryProductId);
                        // AddSubCategories(props.ToList(), productCategory.ParentCategoryProductId);
                        // props.Single().AddChildProductCategory(productCategory);
                        AddSubCategories(productCategories, productCategory);
                    }
                }

                return(productCategories);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }