public async Task <string> GetCwsBoundingString(int nodeId, int cwsId)
        {
            CustomWsBinding binding = await _context.WebServiceBindings.AsNoTracking()
                                      .Where(wsb => wsb.NodeID == nodeId && wsb.ServiceID == cwsId)
                                      .Include(wsb => wsb.Service)
                                      .Include(wsb => wsb.Node)
                                      .SingleOrDefaultAsync();

            if (binding == null)
            {
                return(null);
            }

            string rawServiceString = binding.Service.ServiceStr;
            string ip = new System.Net.IPAddress(binding.Node.ip).ToString();

            KeyValuePair <string, string>[] paramSwap =
            {
                new KeyValuePair <string, string>("{param1}",  binding.Param1),
                new KeyValuePair <string, string>("{param2}",  binding.Param2),
                new KeyValuePair <string, string>("{param3}",  binding.Param3),
                new KeyValuePair <string, string>("{node_ip}", ip),
            };
            StringBuilder buildServiceStr = new StringBuilder(rawServiceString);

            foreach (KeyValuePair <string, string> swapper in paramSwap)
            {
                buildServiceStr.Replace(swapper.Key, swapper.Value);
            }

            return(buildServiceStr.ToString());
        }
        public async Task CreateWebServiceBinding(
            int nodeId,
            int cwsId,
            string param1,
            string param2,
            string param3
            )
        {
            CustomWsBinding binding = new CustomWsBinding
            {
                ID        = 0,
                ServiceID = cwsId,
                NodeID    = nodeId,
                Param1    = param1,
                Param2    = param2,
                Param3    = param3,
            };

            _context.WebServiceBindings.Add(binding);
            await _context.SaveChangesAsync();
        }