using Application.Domain.Entities; using Application.Models; using Infrastructure.Application; using Infrastructure.Data; using Infrastructure.Web.Mvc; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using System; using System.Linq; namespace IoTNode.Areas.Admin.Controllers { [Authorize] [Area(nameof(Admin))] public class CommandController : CrudController, DisplayCommandModel, EditCommandModel> { private readonly IRepository _nodeRepo; private readonly IRepository _senceRepo; private readonly IRepository _apiRepo; private readonly IRepository _repo; private readonly AjaxController _ajax; public CommandController(IRepository nodeRepo, IRepository senceRepo, IRepository apiRepo, IRepository repo, AjaxController ajax) : base(repo) { this._repo = repo; this._nodeRepo = nodeRepo; this._senceRepo = senceRepo; this._apiRepo = apiRepo; this._ajax = ajax; } public override IQueryable Include(IQueryable query) { return query.Include(o => o.Device).ThenInclude(o => o.Node).Include(o => o.Device).Include(o => o.Api); } public override void ToDisplayModel(Command entity, DisplayCommandModel model) { if (entity == null) { throw new ArgumentNullException(nameof(entity)); } if (model == null) { throw new ArgumentNullException(nameof(model)); } //model.NodeId = entity.Scene.Node.Name; //model.SceneId = entity.Scene.Name; model.ApiId = entity.Api.Name; model.DeviceId = entity.Device.Name; model.QueryString = entity.QueryString; } } }