using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using MongoDB.Bson; using MyCore.Models; using MyCore.Services; namespace MyCore.Controllers { [Authorize(Roles = "Admin")] [Route("api/device/screen")] [ApiController] public class ScreenDeviceController : ControllerBase { private readonly ScreenDeviceService _ScreenDeviceService; public ScreenDeviceController(ScreenDeviceService ScreenDeviceService) { _ScreenDeviceService = ScreenDeviceService; } // GET: Devices /// /// /// [ProducesResponseType(typeof(List), 200)] [HttpGet] public ObjectResult GetAllScreenDevices() { try { List screenDevices = _ScreenDeviceService.GetAll(); return new OkObjectResult(screenDevices); } catch (Exception ex) { return new ObjectResult(ex.Message) { StatusCode = 500 }; } } // GET: ScreenDevice /// /// /// /// Id of the screen device you want to get information [ProducesResponseType(typeof(ScreenDevice), 200)] [HttpGet("{idScreenDevice}")] public ObjectResult GetDeviceInfo(string idScreenDevice) { try { ScreenDevice screenDevice = _ScreenDeviceService.GetInfo(idScreenDevice); return new OkObjectResult(screenDevice); } catch (Exception ex) { return new ObjectResult(ex.Message) { StatusCode = 500 }; } } // POST: Device/Create /// /// /// [HttpPost] public ObjectResult CreateDevice([FromBody] ScreenDevice screenDevice) { try { _ScreenDeviceService.Create(screenDevice); return new OkObjectResult(201); } catch (Exception ex) { return new ObjectResult(ex.Message) { StatusCode = 500 }; } } // PUT: Device/Update /// /// /// [HttpPut("{idScreenDevice}")] public ObjectResult UpdateDevice(int idScreenDevice, [FromBody] ScreenDevice screenDevice) { try { _ScreenDeviceService.Update(screenDevice.Id, screenDevice); return new OkObjectResult(201); } catch (Exception ex) { return new ObjectResult(ex.Message) { StatusCode = 500 }; } } // Delete: Device/Delete /// /// /// [HttpDelete("{idDevice}")] public ObjectResult DeleteDevice(int idDevice, [FromBody] string deviceId) { try { _ScreenDeviceService.Remove(deviceId); return new OkObjectResult(201); } catch (Exception ex) { return new ObjectResult(ex.Message) { StatusCode = 500 }; } } } }