private ActionResult Rss(RavenQueryStatistics stats, IEnumerable<Post> posts) { string requestETagHeader = Request.Headers["If-None-Match"] ?? string.Empty; var responseETagHeader = stats.Timestamp.ToString("o"); if (requestETagHeader == responseETagHeader) return HttpNotModified(); var rss = new XDocument( new XElement("rss", new XAttribute("version", "2.0"), new XElement("channel", new XElement("title", GetBlogTitle()), new XElement("link", Request.ApplicationPath), new XElement("description", GetBlogTitle()), new XElement("copyright", String.Format("{0} (c) {1}", GetBlogCopyright(), DateTime.Now.Year)), new XElement("ttl", "60"), from post in posts select new XElement("item", new XElement("title", post.Title), new XElement("description", post.Body), new XElement("link", GetPostLink(post)), new XElement("pubDate", post.PublishAt.ToString("R")) ) ) ) ); return Xml(rss, responseETagHeader); }
public void Getting_Statistics_From_A_Query() { using (var session = Store.OpenSession()) { var stats = new RavenQueryStatistics(); var contacts = session.Query<Employee>() .Statistics(out stats) .Where(x => x.Email == "*****@*****.**") .ToList(); Console.Out.WriteLine(stats.IndexName); Console.Out.WriteLine(stats.IsStale); } }
/// <summary> /// Creates a dynamic query provider around the provided document session /// </summary> public DynamicRavenQueryProvider( IDocumentQueryGenerator queryGenerator, string indexName, RavenQueryStatistics ravenQueryStatistics #if !SILVERLIGHT , IDatabaseCommands databaseCommands #endif #if !NET_3_5 , IAsyncDatabaseCommands asyncDatabaseCommands #endif ) { FieldsToFetch = new HashSet <string>(); this.queryGenerator = queryGenerator; this.indexName = indexName; this.ravenQueryStatistics = ravenQueryStatistics; #if !SILVERLIGHT this.databaseCommands = databaseCommands; #endif #if !NET_3_5 this.asyncDatabaseCommands = asyncDatabaseCommands; #endif }
/// <summary> /// Provide statistics about the query, such as total count of matching records /// </summary> public IRavenQueryable <T> Statistics(out RavenQueryStatistics stats) { stats = queryStats; return(this); }
private bool CheckEtag(RavenQueryStatistics stats, out string responseETagHeader) { string requestETagHeader = Request.Headers["If-None-Match"] ?? string.Empty; responseETagHeader = stats.Timestamp.ToString("o") + EtagInitValue; return requestETagHeader == responseETagHeader; }