Example #1
0
        private MutableIndexChanges Upsert(
            string fullVersion,
            NuGetVersion parsedVersion,
            VersionPropertiesData data)
        {
            var added = new VersionProperties(fullVersion, parsedVersion, data);

            _versionProperties[added.ParsedVersion] = KeyValuePair.Create(added.FullVersion, data);

            // Detect changes related to the latest versions, per search filter.
            var output = new Dictionary <SearchFilters, LatestIndexChanges>();

            foreach (var pair in _versionLists)
            {
                var searchFilter = pair.Key;
                var listState    = pair.Value;
                var predicate    = SearchFilterPredicates[searchFilter];

                LatestIndexChanges latestIndexChanges;
                if (predicate(added))
                {
                    latestIndexChanges = listState.Upsert(added.Filtered);
                }
                else
                {
                    latestIndexChanges = listState.Remove(added.ParsedVersion);
                }

                output[searchFilter] = latestIndexChanges;
            }

            return(MutableIndexChanges.FromLatestIndexChanges(output));
        }
Example #2
0
 private VersionListChange(bool isDelete, NuGetVersion parsedVersion, string fullVersion, VersionPropertiesData data)
 {
     IsDelete      = isDelete;
     ParsedVersion = parsedVersion ?? throw new ArgumentNullException(nameof(parsedVersion));
     FullVersion   = fullVersion;
     Data          = data;
 }
Example #3
0
        /// <summary>
        /// Initialize a version list change representing an upsert of the provided version.
        /// </summary>
        /// <param name="fullOrOriginalVersion">The full version string or the original version string.</param>
        /// <param name="data">The properties relevent to the version list resource.</param>
        /// <returns>The version list change.</returns>
        public static VersionListChange Upsert(string fullOrOriginalVersion, VersionPropertiesData data)
        {
            if (data == null)
            {
                throw new ArgumentNullException(nameof(data));
            }

            if (fullOrOriginalVersion == null)
            {
                throw new ArgumentNullException(nameof(fullOrOriginalVersion));
            }

            var parsedVersion = NuGetVersion.Parse(fullOrOriginalVersion);
            var fullVersion   = parsedVersion.ToFullString();

            return(new VersionListChange(
                       isDelete: false,
                       parsedVersion: parsedVersion,
                       fullVersion: fullVersion,
                       data: data));
        }
Example #4
0
 public VersionProperties(string fullOrOriginalVersion, VersionPropertiesData data)
 {
     Data     = data ?? throw new ArgumentNullException(nameof(data));
     Filtered = new FilteredVersionProperties(fullOrOriginalVersion, Data.Listed);
 }
Example #5
0
        internal MutableIndexChanges Upsert(string fullOrOriginalVersion, VersionPropertiesData data)
        {
            var parsedVersion = NuGetVersion.Parse(fullOrOriginalVersion);

            return(Upsert(parsedVersion.ToFullString(), parsedVersion, data));
        }