using AsbCloudApp.Data; using AsbCloudApp.Requests; using AsbCloudApp.Services; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using System; using System.Threading; using System.Threading.Tasks; namespace AsbCloudWebApi.Controllers { /// /// Редактор телеметрий для админки /// [Route("api/admin/telemetry")] [ApiController] [Authorize] public class AdminTelemetryController : CrudController> { private readonly ITelemetryService telemetryService; private readonly ITelemetryDataEditorService telemetryEditorService; public AdminTelemetryController(ICrudRepository service, ITelemetryService telemetryService, ITelemetryDataEditorService telemetryEditorService) : base(service) { this.telemetryService = telemetryService; this.telemetryEditorService = telemetryEditorService; } /// /// Merge telemetries. No body required. /// /// [HttpPost("/merge/{idFrom}/{idTo}")] [Permission] public async Task MergeTelemetriesAsync(int idFrom, int idTo, CancellationToken token) { var count = await telemetryService.MergeAsync(idFrom, idTo, token) .ConfigureAwait(false); return Ok(count); } /// /// Удаление куска телеметрии /// /// ключ телеметрии /// начало интервала удаления /// конец интервала удаления /// /// [HttpDelete("/part/{telemetryId}")] [Permission] public async Task DeleteAsync(int telemetryId, DateTimeOffset? gDate, DateTimeOffset? lDate, CancellationToken token) { var request = new TelemetryPartDeleteRequest() { IdTelemetry = telemetryId, GeDate = gDate, LeDate = lDate }; await telemetryEditorService.DeleteAsync(request, token); return Ok(); } } }