using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using AsbCloudApp.Data.SAUB; using AsbCloudApp.Requests; using AsbCloudApp.Services; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; namespace AsbCloudWebApi.Controllers; /// /// Версии прошивок /// [Route("api/[controller]")] [ApiController] [Authorize] public class TelemetryInfoController : ControllerBase { private readonly ITelemetryService telemetryService; public TelemetryInfoController(ITelemetryService telemetryService) { this.telemetryService = telemetryService; } /// /// Получить список версий прошивок /// /// Необязательный параметр. Определяет состояние скважины /// null - возвращаются все записи /// 0 - неизвестно, /// 1 - в работе, /// 2 - завершена /// /// [HttpGet] [Permission] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] public async Task GetAsync([FromQuery] int? idWellState, CancellationToken token) { var idCompany = User.GetCompanyId(); if (!idCompany.HasValue) return Forbid(); var requestToService = new TelemetryInfoRequest { IdCompany = idCompany.Value, IdWellState = idWellState }; var telemetriesInfo = await telemetryService.GetInfoAsync(requestToService, token); return Ok(telemetriesInfo); } }