NodesController.cs 2.2 KB

using Common;
using DeviceLib.BLL;
using DeviceLib.Model.AGV;
using DeviceLib.WebApi.Schemas;
using System.Collections.Generic;
using System.Web.Http;

namespace DeviceLib.WebApi.Controllers
{
    [RoutePrefix("api/nodes")]
    public class NodesController : ApiController
    {
        [HttpGet]
        public IEnumerable<ClientNode> Get()
        {
            return NodeManager.GetClientNodes();
        }
        [HttpGet]
        [Route("{name}")]
        public ClientNode Get(string name)
        {
            return NodeManager.GetClientNodeByName(name);
        }
        [HttpGet]
        [Route("confirm")]
        public Result ConfirmGet(string name, int id)
        {
            Result result = new Result();
            result.data = new Dictionary<string, object>();
            result.data.Add("name", name);
            result.data.Add("id", id);
            if (!NodeManager.NodeConfirm(id, name,out string msg))
            {
                result.code = -1;
                result.msg = $"fail,{msg}";
            }
            return result;
        }
        [HttpPost]
        public Result Post([FromBody] ClientNode node)
        {
            Result result = new Result();
            bool rtn = NodeManager.AddNode(node);
            if (!rtn)
            {
                result.code = -1;
                result.msg = "fail";
            }
            result.data = JsonHelper.DeserializeJsonToObject<Dictionary<string, object>>(JsonHelper.SerializeObject(node));
            return result;
        }
        [Route("{name}")]
        [HttpPut]
        public Result Put(string name, [FromBody] ClientNode node)
        {
            Result result = new Result();
            bool rtn = NodeManager.UpdateClientNode(node);
            if (!rtn)
            {
                result.code = -1;
                result.msg = "fail";
            }
            result.data = JsonHelper.DeserializeJsonToObject<Dictionary<string, object>>(JsonHelper.SerializeObject(node));
            return result;
        }
        [Route("{name}")]
        [HttpDelete]
        public Result Delete(string name)
        {
            Result result = new Result();
            result.code = 0;
            result.msg = "维护中";
            return result;
        }
    }
}