Esempio n. 1
0
        public async Task <ActionResult> Detail(String id = "")
        {
            try
            {
                int brandId               = id.Split("-".ToCharArray()).Last().ToInt();
                var pageDesignTask        = PageDesignService.GetPageDesignByName(StoreId, BrandDetailPageDesignName);
                var brandTask             = BrandService.GetBrandAsync(brandId);
                var take                  = GetSettingValueInt("BrandProducts_ItemNumber", 20);
                var productsTask          = ProductService.GetProductsByBrandAsync(StoreId, brandId, take, 0);
                var productCategoriesTask = ProductCategoryService.GetCategoriesByBrandIdAsync(StoreId, brandId);

                var settings = GetStoreSettings();

                BrandService2.ImageWidth  = GetSettingValueInt("BrandDetail_ImageWidth", 50);
                BrandService2.ImageHeight = GetSettingValueInt("BrandDetail_ImageHeight", 50);

                await Task.WhenAll(brandTask, pageDesignTask, productsTask, productCategoriesTask);

                var pageDesign        = pageDesignTask.Result;
                var products          = productsTask.Result;
                var productCategories = productCategoriesTask.Result;
                var brand             = brandTask.Result;

                if (pageDesign == null)
                {
                    throw new Exception("PageDesing is null:" + BrandDetailPageDesignName);
                }

                var dic = BrandService2.GetBrandDetailPage(brand, products, pageDesign, productCategories);
                dic.StoreSettings = settings;
                dic.MyStore       = this.MyStore;
                dic.PageTitle     = brand.Name;
                return(View(dic));
            }
            catch (Exception ex)
            {
                Logger.Error(ex, "Stack Trace:" + ex.StackTrace, id);
                return(new HttpStatusCodeResult(500));
            }
        }