示例#1
0
        public async Task <IActionResult> GetBreadcrumb([FromQuery] string categoryId,
                                                        [FromQuery] string subcategoryId,
                                                        [FromQuery] string productId)
        {
            if (String.IsNullOrEmpty(categoryId) || String.IsNullOrEmpty(subcategoryId))
            {
                var msg = $"Что-то пошло не так, не удалось получить Breadcrumb для продукта, так как отсутствует категория и подкатегория.";
                _logger.LogError(msg);
                return(BadRequest(msg));
            }

            var breadcrumb = String.IsNullOrEmpty(productId)
                ? await _repository.GetProductBreadcrumb(categoryId, subcategoryId)
                : await _repository.GetProductBreadcrumb(categoryId, subcategoryId, productId);

            var order = 1;

            var breadcrumbList = new List <IBreadcrumb>()
            {
                new BreadcrumbDTO()
                {
                    DisplayName = "Каталог",
                    Url         = "Catalog",
                    Order       = order++,
                },
            };

            breadcrumbList.AddRange(
                breadcrumb.Select(x =>
            {
                x.Order = order++;
                return(x);
            })
                );

            return(Success(breadcrumbList));
        }