/Raven.Database/Counters/Controllers/CounterStorageController.cs
C# | 43 lines | 39 code | 3 blank | 1 comment | 0 complexity | d91e9108d6f015f382ea9af2c3709b36 MD5 | raw file
Possible License(s): MPL-2.0-no-copyleft-exception, BSD-3-Clause, CC-BY-SA-3.0
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Net.Http;
- using System.Text;
- using System.Threading;
- using System.Threading.Tasks;
- using System.Web.Http;
- using Raven.Database.Server.Controllers;
- using Raven.Json.Linq;
-
- namespace Raven.Database.Counters.Controllers
- {
- public class CounterStorageController : RavenDbApiController
- {
- [Route("counterStorage/conterStorages")]
- [HttpGet]
- public HttpResponseMessage GetCounterStoragesNames()
- {
- var names = GetCounterStorages();
- return GetMessageWithObject(names);
- }
-
- [Route("counterStorage/stats")]
- [HttpGet]
- public HttpResponseMessage GetCounterStoragesStats()
- {
- //TODO: implement getting the stats about the counter storages
- return GetEmptyMessage();
- }
-
- private string[] GetCounterStorages()
- {
- var start = GetStart();
- var nextPageStart = start; // will trigger rapid pagination
- var counterStorages = Database.Documents.GetDocumentsWithIdStartingWith("Raven/Counters/", null, null, start, GetPageSize(Database.Configuration.MaxPageSize), CancellationToken.None, ref nextPageStart);
- var counterStoragesNames = counterStorages
- .Select(x => x.Value<RavenJObject>("@metadata").Value<string>("@id").Replace("Raven/Counters/", string.Empty))
- .ToArray();
- return counterStoragesNames;
- }
- }
- }