private string GenerateViewUri(Uri uri, LatestReleaseInfo result)
        {
            var queryString = "";
            var spacer = "";
            foreach (var item in result.Details)
            {
                queryString += string.Format("{0}{1}={2}", spacer, item.Key, item.Value.Version);
                spacer = "&";
            }

            return  String.Format("{0}://{1}/release/check/details?{2}", uri.Scheme, uri.Authority, queryString);
        }
        public LatestReleaseInfo GetLatestReleaseInfo(VersionCheckDetails request, bool includeReleasesData = false)
        {
            var info = new LatestReleaseInfo { Details = new Dictionary<string, LatestReleaseDetails>() };

            foreach (var package in request.Packages)
            {
                var detail = GetLatestReleaseInfo(package, includeReleasesData);

                info.Details.Add(package.Name, detail);
                if (detail.HasNewer)
                    info.HasNewer = true;
            } 

            return info;
        }