public async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", Route = "Categories")]
            HttpRequest req,
            ILogger log)
        {
            log.LogInformation($"TopLevalCategories {req.Path} started");

            var qry     = new TopLevalCategoriesQuery();
            var respose = await _queryMediator.Do(qry);

            return(new OkObjectResult(respose.As <JsonQueryResult>().Json));
        }
        public async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", Route = "Categories/{categoryId}")]
            HttpRequest req,
            string categoryId,
            ILogger log)
        {
            log.LogInformation($"ChildCategories {req.Path} started");

            if (string.IsNullOrEmpty(categoryId) == false)
            {
                var qry     = new ChildCategoriesQuery(categoryId.ToInt(-1));
                var respose = await _queryMediator.Do(qry);

                return(new OkObjectResult(respose.As <JsonQueryResult>().Json));
            }
            else
            {
                return(new NotFoundResult());
            }
        }
        public async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", Route = "Products/{categoryId}/{pageSize}/{pageCount}")]
            HttpRequest req,
            string categoryId,
            string pageSize,
            string pageCount,

            ILogger log)
        {
            log.LogInformation($"ProductsByCategory {req.Path} started");

            var qry = new ProductsByCategoryQuery
                      (
                categoryId: categoryId.ToInt(defaultValue: -1),
                pageCount: pageCount.ToInt(defaultValue: 0),
                pageSize: pageSize.ToInt(25)
                      );
            var respose = await _queryMediator.Do(qry);

            return(new OkObjectResult(respose.As <JsonQueryResult>().Json));
        }