Skip to content

Commit

Permalink
Merge pull request #1538 from NuGet/tilovell/LostQAChanges
Browse files Browse the repository at this point in the history
Merge staging fixes back to QA
  • Loading branch information
claycompton committed Aug 31, 2013
2 parents 1dfbebc + cde1728 commit 294b38b
Show file tree
Hide file tree
Showing 19 changed files with 372 additions and 166 deletions.
14 changes: 13 additions & 1 deletion src/NuGetGallery.Core/Entities/Package.cs
Expand Up @@ -72,8 +72,17 @@ public Package()

public bool IsLatest { get; set; }
public bool IsLatestStable { get; set; }

/// <summary>
/// This is when the Package Entity was last touched (so caches can notice changes). In UTC.
/// </summary>
public DateTime LastUpdated { get; set; }

/// <summary>
/// This is when the Package Metadata was last edited by a user. Or NULL. In UTC.
/// </summary>
public DateTime? LastEdited { get; set; }

/// <remarks>
/// Has a max length of 4000. Is not indexed and not used for searches. Db column is nvarchar(max).
/// </remarks>
Expand Down Expand Up @@ -162,7 +171,10 @@ public void ApplyEdit(PackageEdit edit, string hashAlgorithm, string hash, long
Hash = hash;
HashAlgorithm = hashAlgorithm;
PackageFileSize = packageFileSize;
LastUpdated = DateTime.UtcNow;

var now = DateTime.UtcNow;
LastUpdated = now;
LastEdited = now;
}
}
}
1 change: 1 addition & 0 deletions src/NuGetGallery/DataServices/PackageExtensions.cs
Expand Up @@ -91,6 +91,7 @@ public static IQueryable<V2FeedPackage> ToV2FeedPackageQuery(this IQueryable<Pac
Title = p.Title,
VersionDownloadCount = p.DownloadCount,
MinClientVersion = p.MinClientVersion,
LastEdited = p.LastEdited,
});
}

Expand Down
4 changes: 4 additions & 0 deletions src/NuGetGallery/DataServices/SearchAdaptor.cs
Expand Up @@ -191,6 +191,10 @@ private static bool TryReadSearchFilter(string url, out SearchFilter searchFilte
{
searchFilter.SortProperty = SortProperty.Recent;
}
else if (orderBy.StartsWith("LastEdited", StringComparison.Ordinal))
{
searchFilter.SortProperty = SortProperty.RecentlyEdited;
}
else if (orderBy.StartsWith("Id", StringComparison.Ordinal))
{
searchFilter.SortProperty = SortProperty.DisplayName;
Expand Down
1 change: 1 addition & 0 deletions src/NuGetGallery/DataServices/V2FeedPackage.cs
Expand Up @@ -41,5 +41,6 @@ public class V2FeedPackage
public string Title { get; set; }
public int VersionDownloadCount { get; set; }
public string MinClientVersion { get; set; }
public DateTime? LastEdited { get; set; }
}
}
8 changes: 8 additions & 0 deletions src/NuGetGallery/Infrastructure/Lucene/LuceneSearchService.cs
Expand Up @@ -97,6 +97,11 @@ private static Package PackageFromDoc(Document doc)
DateTime created = DateTime.Parse(doc.Get("Created"), CultureInfo.InvariantCulture);
DateTime published = DateTime.Parse(doc.Get("Published"), CultureInfo.InvariantCulture);
DateTime lastUpdated = DateTime.Parse(doc.Get("LastUpdated"), CultureInfo.InvariantCulture);
DateTime? lastEdited = null;
if (!String.IsNullOrEmpty(doc.Get("LastEdited")))
{
lastEdited = DateTime.Parse(doc.Get("LastEdited"), CultureInfo.InvariantCulture);
}

var owners = doc.Get("FlattenedOwners")
.SplitSafe(new[] {';'}, StringSplitOptions.RemoveEmptyEntries)
Expand Down Expand Up @@ -130,6 +135,7 @@ private static Package PackageFromDoc(Document doc)
Key = key,
Language = doc.Get("Language"),
LastUpdated = lastUpdated,
LastEdited = lastEdited,
LicenseUrl = doc.Get("LicenseUrl"),
PackageRegistration = new PackageRegistration
{
Expand Down Expand Up @@ -337,6 +343,8 @@ private static SortField GetSortField(SearchFilter searchFilter)
return new SortField("DownloadCount", SortField.INT, reverse: true);
case SortProperty.Recent:
return new SortField("PublishedDate", SortField.LONG, reverse: true);
case SortProperty.RecentlyEdited:
return new SortField("EditedDate", SortField.LONG, reverse: true);
}

return SortField.FIELD_SCORE;
Expand Down
6 changes: 6 additions & 0 deletions src/NuGetGallery/Infrastructure/PackageIndexEntity.cs
Expand Up @@ -122,6 +122,11 @@ public Document ToDocument()
document.Add(new Field("HashAlgorithm", Package.HashAlgorithm.ToStringSafe(), Field.Store.YES, Field.Index.NO));
document.Add(new Field("Id-Original", Package.PackageRegistration.Id, Field.Store.YES, Field.Index.NO));
document.Add(new Field("LastUpdated", Package.LastUpdated.ToString(CultureInfo.InvariantCulture), Field.Store.YES, Field.Index.NO));
if (Package.LastEdited != null)
{
document.Add(new Field("LastEdited", Package.LastEdited.Value.ToString(CultureInfo.InvariantCulture), Field.Store.YES, Field.Index.NO));
}

document.Add(new Field("Language", Package.Language.ToStringSafe(), Field.Store.YES, Field.Index.NO));
document.Add(new Field("LicenseUrl", Package.LicenseUrl.ToStringSafe(), Field.Store.YES, Field.Index.NO));
document.Add(new Field("MinClientVersion", Package.MinClientVersion.ToStringSafe(), Field.Store.YES, Field.Index.NO));
Expand All @@ -146,6 +151,7 @@ public Document ToDocument()

// Fields meant for filtering, sorting
document.Add(new Field("PublishedDate", Package.Published.Ticks.ToString(CultureInfo.InvariantCulture), Field.Store.NO, Field.Index.NOT_ANALYZED));
document.Add(new Field("EditedDate", (Package.LastEdited ?? Package.Published).Ticks.ToString(CultureInfo.InvariantCulture), Field.Store.NO, Field.Index.NOT_ANALYZED));
document.Add(
new Field("DownloadCount", Package.PackageRegistration.DownloadCount.ToString(CultureInfo.InvariantCulture), Field.Store.YES, Field.Index.NOT_ANALYZED));

Expand Down

0 comments on commit 294b38b

Please sign in to comment.