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)); }
private VersionListChange(bool isDelete, NuGetVersion parsedVersion, string fullVersion, VersionPropertiesData data) { IsDelete = isDelete; ParsedVersion = parsedVersion ?? throw new ArgumentNullException(nameof(parsedVersion)); FullVersion = fullVersion; Data = data; }
/// <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)); }
public VersionProperties(string fullOrOriginalVersion, VersionPropertiesData data) { Data = data ?? throw new ArgumentNullException(nameof(data)); Filtered = new FilteredVersionProperties(fullOrOriginalVersion, Data.Listed); }
internal MutableIndexChanges Upsert(string fullOrOriginalVersion, VersionPropertiesData data) { var parsedVersion = NuGetVersion.Parse(fullOrOriginalVersion); return(Upsert(parsedVersion.ToFullString(), parsedVersion, data)); }