public GetProductResponse GetProduct(GetProductRequest request)
        {
            GetProductResponse response = new GetProductResponse();

            ProductTitle productTitle = _productTitleRepository.FindBy(request.ProductId);

            response.Product = productTitle.ConvertToProductDetailView();

            return response;
        }
        public GetProductResponse GetProduct(GetProductRequest request)
        {
            var response = new GetProductResponse
                               {
                                   Product =
                                       _presentationRepository.FindFirstByExample<ProductDetailDto>(
                                           new {Id = request.ProductId})
                               };

            return response;
        }
        public ActionResult Detail(int id)
        {
            ProductDetailView productDetailView = new ProductDetailView();
            GetProductRequest request = new GetProductRequest() {ProductId = id};
            GetProductResponse response = _productService.GetProduct(request);

            productDetailView.Product = response.Product;
            productDetailView.BasketSummary = base.GetBasketSummaryView();
            productDetailView.Categories = base.GetCategories();

            return View(productDetailView);
        }
        public GetProductResponse GetProduct(GetProductRequest request)
        {
            GetProductResponse response = new GetProductResponse();

            response.Product = FindAllProductTitles().Where(p => p.Id == request.ProductId).FirstOrDefault();

            return response;
        }