using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Persistence.Models; using Persistence.Repositories; namespace Persistence.API.Controllers { [ApiController] [Authorize] [Route("api/[controller]")] public class TechMessagesController : ControllerBase, ITechMessages { private readonly ITechMessagesRepository techMessagesRepository; public TechMessagesController(ITechMessagesRepository techMessagesRepository) { this.techMessagesRepository = techMessagesRepository; } [HttpGet] public async Task>> GetPage([FromQuery] RequestDto request, CancellationToken token) { var result = await techMessagesRepository.GetPage(request, token); return Ok(result); } [HttpGet("statistics")] public async Task> GetStatistics(int importantId, string autoDrillingSystem, CancellationToken token) { var result = await techMessagesRepository.GetStatistics(importantId, autoDrillingSystem, token); return Ok(result); } [HttpGet("systems")] public async Task>> GetSystems(CancellationToken token) { var result = await techMessagesRepository.GetSystems(token); return Ok(result); } [HttpPost] public async Task> InsertRange([FromBody] IEnumerable dtos, CancellationToken token) { var result = await techMessagesRepository.InsertRange(dtos, token); return CreatedAtAction(nameof(InsertRange), result); } [HttpGet("categories")] public ActionResult> GetImportantCategories() { var result = new Dictionary() { { 0, "System" }, { 1, "Авария" }, { 2, "Предупреждение" }, { 3, "Инфо" }, { 4, "Прочее" } }; return Ok(result); } } }