Пример #1
0
        public Node AddNode(NodeConfigurationModel configurationModel)
        {
            try
            {
                var node = _nodeFactory.Create(configurationModel.TypeFullName, configurationModel.JsonConfiguration);
                node.Name       = configurationModel.Name;
                node.ParentGuid = configurationModel.ParentGuid;

                if (_nodes.ContainsKey(configurationModel.DeviceGuid))
                {
                    var l = _nodes[configurationModel.DeviceGuid];
                    l.Add(node);
                    return(node);
                }
                else
                {
                    _nodes.Add(configurationModel.DeviceGuid, new List <Node>()
                    {
                        node
                    });
                    return(node);
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                return(null);
            }
        }
Пример #2
0
        public IActionResult AddNode(Guid adapterGuid, NodeConfigurationModel configModel)
        {
            try
            {
                if (_nodeSynchroniztaionService.IsRunning)
                {
                    _nodeSynchroniztaionService.StopAsync(new System.Threading.CancellationToken());
                }

                var adapter = _adapterManager.Adapters.Where(x => x.Guid == adapterGuid).FirstOrDefault();

                if (adapter == null)
                {
                    return(BadRequest($"Adapter with guid: '{adapterGuid}' not found."));
                }

                var node = _nodeFactory.Create(configModel.TypeFullName, configModel.JsonConfiguration);
                node.Name       = configModel.Name;
                node.Guid       = Guid.NewGuid();
                node.DataType   = NodeDataType.Int;
                node.ParentGuid = configModel.ParentGuid;

                adapter.AddNode(node);
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
            finally
            {
                if (!_nodeSynchroniztaionService.IsRunning)
                {
                    _nodeSynchroniztaionService.StartAsync(new System.Threading.CancellationToken());
                }
            }
            return(CreatedAtAction());
        }