示例#1
0
        public override void Respond(Abstractions.IHttpContext context)
        {
            var prefetcherDocs      = Database.IndexingExecuter.PrefetchingBehavior.DebugGetDocumentsInPrefetchingQueue().ToArray();
            var compareToCollection = new Dictionary <Etag, int>();

            for (int i = 1; i < prefetcherDocs.Length; i++)
            {
                compareToCollection.Add(prefetcherDocs[i - 1].Etag, prefetcherDocs[i].Etag.CompareTo(prefetcherDocs[i - 1].Etag));
            }

            if (compareToCollection.Any(x => x.Value < 0))
            {
                context.WriteJson(new
                {
                    HasCorrectlyOrderedEtags = true,
                    EtagsWithKeys            = prefetcherDocs.ToDictionary(x => x.Etag, x => x.Key)
                });
            }
            else
            {
                context.WriteJson(new
                {
                    HasCorrectlyOrderedEtags = false,
                    IncorrectlyOrderedEtags  = compareToCollection.Where(x => x.Value < 0),
                    EtagsWithKeys            = prefetcherDocs.ToDictionary(x => x.Etag, x => x.Key)
                });
            }
        }
示例#2
0
        public override void Respond(Abstractions.IHttpContext context)
        {
            if (context.User.IsAdministrator() == false)
            {
                context.SetStatusToUnauthorized();
                context.WriteJson(new
                {
                    Error = "The operation '" + context.GetRequestUrl() + "' is only available to administrators"
                });
                return;
            }

            RespondToAdmin(context);
        }