/// <summary>
        /// GET : api/shopsigns/{shopsignid}/categories
        /// </summary>
        /// <param name="shopsignId">shop sign id to extract</param>
        /// <returns></returns>
        public async Task <IEnumerable <Category> > GetCategoriesAsync([FromRoute] string shopsignId)
        {
            var categories = await GetArticleCategoriesAsync();

            var      stockGroups = GetStockGroupsFromShopSign(shopsignId);
            ShopSign shop        = new ShopSign()
            {
                Id = shopsignId
            };
            var r = categories.Where(c => string.Join(',', stockGroups) == c.StockGroupId);

            return(CategoriesCollection.BuildTree(r));
        }
        public async Task <PaginationInfo <Category> > ListAllAsync(int pageSize, int pageNumber)
        {
            using (var conn = DataContext.CreateConnection())
            {
                conn.Open();
                string spName  = "faldone.ArticleCategoryList";
                var    results = await conn.QueryMultipleAsync(spName
                                                               , new { PageSize = pageSize, PageNumber = pageNumber }
                                                               , commandType : CommandType.StoredProcedure);

                var res = await results.ReadAsync <CategoriesCollection.ResultSet>();

                var recordCount             = results.Read <int>().First();
                IEnumerable <Category> coll = CategoriesCollection.BuildTree(res);
                return(PaginationInfo <Category>(pageSize, pageNumber, recordCount, coll));
            }
        }
        /// <summary>
        /// GET : api/shopsigns
        /// </summary>
        /// <returns></returns>
        public async Task <IEnumerable <ShopSign> > GetShopSignsAsync()
        {
            var categories = await GetArticleCategoriesAsync();

            List <ShopSign> list  = new List <ShopSign>();
            var             signs = new string[] { "KASANOVA", "KASANOVA+", "COIMPORT", "L'Outlet", "Casa sulla'albero", "Le Kikke", "E-Commerce" };

            foreach (string sign in signs)
            {
                var      stockGroups = GetStockGroupsFromShopSign(sign);
                ShopSign shop        = new ShopSign()
                {
                    Id = sign
                };
                var r = categories.Where(c => string.Join(',', stockGroups) == c.StockGroupId);
                shop.Categories.AddRange(CategoriesCollection.BuildTree(r));
                list.Add(shop);
            }
            return(list);
        }