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)); } }