public string GetPackageDownloadPath(DataServicePackage package)
        {
            var route = RouteTable.Routes[RouteNames.PackageDownload];

            var routeValues = new {id = package.Id, version = package.Version, httproute = true};
            
            return route.GetVirtualPath(RequestContext, new RouteValueDictionary(routeValues)).VirtualPath;
        }
        public virtual string GetPackageDownloadPath(DataServicePackage package)
        {
            var route = RouteTable.Routes[RouteNames.Packages.Download];

            var routeValues = new {id = package.Id, version = package.Version, httproute = true};
            
            var path = route.GetVirtualPath(RequestContext, new RouteValueDictionary(routeValues)).VirtualPath;
            return VirtualPathUtility.ToAbsolute("~/" + path);
        }
        public string GetPackageDownloadPath(DataServicePackage package)
        {
            var route = RouteTable.Routes[RouteNames.Packages.Download];

            var routeValues = new { id = package.Id, version = package.Version, httproute = true };

            var routeValueDictionary = new RouteValueDictionary(routeValues);

            this.AddMissingRouteDataFromCurrentRequest(routeValueDictionary);

            var virtualPathData = route.GetVirtualPath(RequestContext, routeValueDictionary);
            if (virtualPathData != null)
            {
                var path = virtualPathData.VirtualPath;
                return VirtualPathUtility.ToAbsolute("~/" + path);
            }
            
            throw new InvalidOperationException("Can't calculate valid route for package!");
        }