using AsbCloudApp.Data; using AsbCloudApp.Services; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; namespace AsbCloudWebApi.Controllers { /// /// Контроллер сбора данных от буровых /// [Route("api/well")] [ApiController] [Authorize] public class DataController : ControllerBase { private readonly IDataService telemetryDataService; public DataController(IDataService telemetryDataService) { this.telemetryDataService = telemetryDataService; } /// /// Возвращает данные САУБ по скважине. /// По умолчанию за последние 10 минут. /// /// id скважины /// дата начала выборки. По умолчанию: текущее время - intervalSec /// интервал времени даты начала выборки, секунды /// желаемое количество точек. Если в выборке точек будет больше, то выборка будет прорежена. /// [HttpGet] [Route("{wellId}/data")] [ProducesResponseType(typeof(IEnumerable), (int)System.Net.HttpStatusCode.OK)] public IActionResult GetData(int wellId, DateTime begin = default, int intervalSec = 600, int approxPointsCount = 1024) { if (begin == default) begin = DateTime.Now.AddSeconds(-intervalSec); var content = telemetryDataService.Get(wellId, begin, intervalSec, approxPointsCount); return Ok(content); } } }