//Unique constraint request go first (the order matters in service stack)
        //If the PK constraint was first, it could be used by ServiceStack instead
        //of the UC route (this is how Route order is controlled)
        /// <summary>Gets a specific 'Product' based on the 'UcProductName' unique constraint.</summary>
        public ProductResponse Get(ProductUcProductNameRequest request)
        {
            if (Validator != null)
            {
                Validator.ValidateAndThrow(new Product {
                    ProductName = request.ProductName
                }, "UcProductName");
            }

            OnBeforeGetProductUcProductNameRequest(request);
            var output = Repository.Fetch(request);

            OnAfterGetProductUcProductNameRequest(request, output);
            if (output.Result == null)
            {
                throw new HttpError(HttpStatusCode.NotFound, "NullReferenceException", "Product matching [ProductName = {0}]  does not exist".Fmt(request.ProductName));
            }
            return(output);
        }
 partial void OnAfterGetProductUcProductNameRequest(ProductUcProductNameRequest request, ProductResponse response);
 partial void OnBeforeGetProductUcProductNameRequest(ProductUcProductNameRequest request);