public ActionResult Details(int id)
        {
            var product = _productsRepository.GetProduct(id);

            if (product == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotFound));
            }

            IEnumerable <Promotion> promotions = null;
            CustomerRec             customer   = null;

            var relatedProducts = _productsRepository.GetRelatedProducts(product.Id);

            var clickEvent = new ClickEvent
            {
                ClickTime = DateTime.Now,
                ProductId = product.Id
            };

            _telemetryRepository.SendClick(clickEvent);

            if (User.Identity.IsAuthenticated)
            {
                customer   = _customerRepository.GetCustomerByName(User.Identity.Name);
                promotions = _promotionsRepository.GetPromotions(customer.CustomerId);
            }

            var relatedCatalogItems = relatedProducts
                                      .OrderBy(p => p.Name)
                                      .Select(relatedProduct => ProductToCatalogItem(promotions, customer, relatedProduct))
                                      .ToList();

            return(View(new CatalogItemDetailsModel(ProductToCatalogItem(promotions, customer, product), relatedCatalogItems)));
        }
Пример #2
0
        public ActionResult Details(Int64 id)
        {
            var product = _productsRepository.GetProduct(id);

            if (product == null)
            {
                return(new HttpStatusCodeResult(System.Net.HttpStatusCode.NotFound));
            }

            var relatedCatalogItems = new List <CatalogItem>();
            IEnumerable <Product> relatedProducts = new List <Product>();


            IEnumerable <Promotion> promotions = null;
            Customer customer = null;

            relatedProducts = _productsRepository.GetRelatedProducts(product.Id);

            var clickEvent = new ClickEvent
            {
                clickTime = DateTime.Now,
                productId = product.Id
            };

            _telemetryRepository.SendClick(clickEvent);

            if (User.Identity.IsAuthenticated)
            {
                customer   = _customerRepository.GetCustomerByName(User.Identity.Name);
                promotions = _promotionsRepository.GetPromotions(customer.Id);
            }

            foreach (var relatedProduct in relatedProducts.OrderBy(p => p.Name))
            {
                relatedCatalogItems.Add(ProductToCatalogItem(promotions, customer, relatedProduct));
            }

            return(View(new CatalogItemDetailsModel(ProductToCatalogItem(promotions, customer, product), relatedCatalogItems)));
        }