using Application.Domain.Entities; using Infrastructure.Data; using Infrastructure.Extensions; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using System; using System.ComponentModel.DataAnnotations; using System.Linq; namespace IoTCenter.Api.Controllers { [ApiVersion("1.0")] [Route("api/v{version:apiVersion}/[controller]/[action]")] [ApiController] public class SceneController : ControllerBase { private readonly IRepository _sceneRepo; public SceneController(IRepository sceneRepo) { this._sceneRepo = sceneRepo; } [HttpPost] public ActionResult GetScenes() { try { var model = this._sceneRepo.ReadOnlyTable() .Where(o => o.NodeId == null && !o.Hidden) .OrderBy(o => o.DisplayOrder); return Ok(model); } catch (Exception ex) { ex.PrintStack(); return Problem(ex.Message); } } [HttpPost] public ActionResult GetScene([Required]Guid id) { try { var model = this._sceneRepo.ReadOnlyTable() .Include(o => o.SceneCommands) .Include(o => o.SceneTimers) .Include(o => o.SceneTiggers) .Where(o => o.Id == id) .FirstOrDefault(); return Ok(model); } catch (Exception ex) { ex.PrintStack(); return Problem(ex.Message); } } } }