using Microsoft.AspNetCore.Http.HttpResults; using Microsoft.AspNetCore.Mvc; using Strela.Models; using Strela.Services; namespace Strela.Controllers; [ApiController] [Route("api/[controller]")] public class DeviceController : ControllerBase { private readonly ILogger _logger; public DeviceController(ILogger logger) { _logger = logger; } //=========================== GET =================================// #region GET [HttpGet("GetTypes")] [ProducesResponseType>(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status204NoContent)] public IActionResult GetList()// Получить лист типов устройств { using (var db = new SQLiteService()) { var tps = db.DeviceTypes.ToList(); if (tps.Count != 0) return Ok(tps); else return NoContent(); } } [HttpGet("GetDeviceById")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status204NoContent)] public IActionResult GetById(int id) // Получить устройство по id { using (var db = new SQLiteService()) { var d = db.Devices.Where(d => d.Id == id).FirstOrDefault(); if (d != null) return Ok(d); else return NoContent(); } } [HttpGet("GetDevices")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status204NoContent)] public IActionResult GetAll() // Получить все устройства { using (var db = new SQLiteService()) { var d = db.Devices.ToList(); //if (d.Count != 0) return Ok(d); //else return NoContent(); } } #endregion //========================= POST ====================================// #region POST [HttpPost("AddDevice")] public IActionResult AddDevice(DeviceItem d) // Добавить одно устройство { using (var db = new SQLiteService()) { db.Devices.Add(d);//.Where(u => u.Name == name).FirstOrDefault(); db.SaveChanges(); return Created(); } } [HttpPost("AddType")] public IActionResult AddType(DeviceType d) //Добавить один тип устройства { using (var db = new SQLiteService()) { db.DeviceTypes.Add(d);//.Where(u => u.Name == name).FirstOrDefault(); db.SaveChanges(); return Created(); } } #endregion //========================= DELETE ====================================// #region DELETE [HttpDelete("DelType")] public IActionResult DelType(int id) //Удалить тип устройства по id { using (var db = new SQLiteService()) { var deldevtype = db.DeviceTypes.Where(u => u.Id == id).FirstOrDefault(); db.DeviceTypes.Remove(deldevtype); db.SaveChanges(); return Ok(); } } [HttpDelete("DelDevice")] public IActionResult DelDevice(int id) //Удалить устройство по id { using (var db = new SQLiteService()) { var deldev = db.Devices.Where(u => u.Id == id).FirstOrDefault(); db.Devices.Remove(deldev); db.SaveChanges(); return Ok(); } } #endregion }