using Application.Domain.Entities; using Application.Models; using Infrastructure.Application; using Infrastructure.Data; using Infrastructure.Extensions; using Infrastructure.Web.Mvc; using IoTCenter.Services; using IoTShared.Services; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.SignalR; namespace IoTCenter.Areas.Admin.Controllers { [Authorize] [Area(nameof(Admin))] public class NodeController : CrudController, EditNodeModel, EditNodeModel> { private readonly IHubContext _pageHubContext; public NodeController(IRepository repo, IHubContext pageHubContext) : base(repo) { this._pageHubContext = pageHubContext; } public override IActionResult Edit(EditNodeModel model) { if (ModelState.IsValid) { var nodeDto = model.To(); this._pageHubContext.Clients.Group(model.Number).SendAsync(Methods.ServerToClient, Methods.EditNodeRequest, nodeDto.ToJson(), null); return RedirectTo(); } ModelState.AddModelError("", "服务器出现异常,请稍后重试"); return View(model); } } }