private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            TreeNode tn = e.Node;

            if (tn.Level == 0) //服务
            {
                string        serverId = tn.Tag.ToString();
                Config.Server server   = _config.Servers.FirstOrDefault(s => s.ServerConfig.ServerSession == serverId);
                if (server != null)
                {
                    this.propertyGrid1.SelectedObject = server.ServerConfig;
                    this.WriteLog("选择服务:" + server.ServerConfig.ServerName);
                }
            }
            else if (tn.Level == 2) //设备
            {
                string        serverId = GetRootNode(tn).Tag.ToString();
                Config.Server server   = _config.Servers.FirstOrDefault(s => s.ServerConfig.ServerSession == serverId);
                if (server != null)
                {
                    string        deviceId = tn.Tag.ToString();
                    Config.Device device   = server.Devices.FirstOrDefault(d => d.DeviceID == deviceId);
                    if (device != null)
                    {
                        this.propertyGrid1.SelectedObject = device;
                        this.WriteLog("选择设备:" + device.Caption);
                    }
                }
            }
        }
 private void AddDevice(string serverId, Config.Device device)
 {
     Config.Server server = _config.Servers.FirstOrDefault(s => s.ServerConfig.ServerSession == serverId);
     if (server != null)
     {
         server.Devices.Add(device);
         this.SaveConfig();
         AddDeviceOfTree(serverId, device);
     }
 }
 private void RemoveServer(string serverId)
 {
     Config.Server server = _config.Servers.FirstOrDefault(s => s.ServerConfig.ServerSession == serverId);
     if (server != null)
     {
         if (_config.Servers.Remove(server))
         {
             this.SaveConfig();
             RemoveServerOfTree(serverId);
         }
     }
 }
        private void propertyGrid1_PropertyValueChanged(object obj, PropertyValueChangedEventArgs e)
        {
            TreeNode tn = this.treeView1.SelectedNode;

            if (tn == null)
            {
                return;
            }

            if (tn.Level == 0) //服务
            {
                string        serverId = tn.Tag.ToString();
                Config.Server server   = _config.Servers.FirstOrDefault(s => s.ServerConfig.ServerSession == serverId);
                if (server != null)
                {
                    server.ServerConfig = (ServerConfig)this.propertyGrid1.SelectedObject;;

                    this.SaveConfig();

                    if (tn.Text != server.ServerConfig.ServerName)
                    {
                        tn.Text = server.ServerConfig.ServerName;
                    }
                    this.WriteLog("修改服务:" + server.ServerConfig.ServerName + ",属性:" + e.ChangedItem.Label);
                }
            }
            else if (tn.Level == 2) //设备
            {
                string        serverId = GetRootNode(tn).Tag.ToString();
                Config.Server server   = _config.Servers.FirstOrDefault(s => s.ServerConfig.ServerSession == serverId);
                if (server != null)
                {
                    string        deviceId = tn.Tag.ToString();
                    Config.Device device   = server.Devices.FirstOrDefault(d => d.DeviceID == deviceId);
                    if (device != null)
                    {
                        device = (Config.Device) this.propertyGrid1.SelectedObject;
                        this.SaveConfig();

                        if (tn.Text != device.Caption)
                        {
                            tn.Text = device.Caption;
                        }
                        this.WriteLog("修改设备:" + device.Caption + ",属性:" + e.ChangedItem.Label);
                    }
                }
            }
        }
 private void RemoveDevice(string serverId, string deviceId)
 {
     Config.Server server = _config.Servers.FirstOrDefault(s => s.ServerConfig.ServerSession == serverId);
     if (server != null)
     {
         Config.Device device = server.Devices.FirstOrDefault(d => d.DeviceID == deviceId);
         if (device != null)
         {
             if (server.Devices.Remove(device))
             {
                 this.SaveConfig();
                 RemoveDeviceOfTree(serverId, deviceId);
             }
         }
     }
 }
示例#6
0
        /// <summary>
        /// Populates the out parameters according to the provided manifest, configuration file, and layer codes list.  Typically used to launch
        /// a client for a specific layer and/or model.
        /// </summary>
        /// <param name="configurationFile">An AX configuration file, used to resolve server configuration and therefore model store location.</param>
        /// <param name="layerCodes">A list of layer access codes.</param>
        /// <param name="modelManifest">A manifest from which layer, model, and publisher information is retrieved.</param>
        /// <param name="modelName">Returns the model name referenced by the manifest.</param>
        /// <param name="publisher">Returns the publisher name referenced by the manifest.</param>
        /// <param name="layer">Returns the layer ID referenced by the manifest.</param>
        /// <param name="layerCode">Returns the layer code for the layer ID referenced by the manifest.</param>
        public static void ExtractClientLayerModelInfo(string configurationFile, StringList layerCodes, string modelManifest, out string modelName, out string publisher, out string layer, out string layerCode)
        {
            CodeCrib.AX.Manage.ModelStore.ExtractModelInfo(modelManifest, out publisher, out modelName, out layer);

            string layerInternal = layer;

            Config.Server serverConfig = Helper.GetServerConfig(configurationFile);
            CodeCrib.AX.Manage.ModelStore modelStore = null;
            if (serverConfig.AOSVersionOrigin.Substring(0, 3) == "6.0")
            {
                modelStore = new Manage.ModelStore(serverConfig.DatabaseServer, string.Format("{0}", serverConfig.Database));
            }
            else
            {
                modelStore = new Manage.ModelStore(serverConfig.DatabaseServer, string.Format("{0}_model", serverConfig.Database));
            }

            // Validate if model exists unless it's the default layer model
            if (!modelStore.ModelExist(modelName, publisher, layer) && !string.Equals(string.Format("{0} model", layer), modelName, StringComparison.InvariantCultureIgnoreCase))
            {
                throw new Exception(string.Format("Model {0} ({1}) does not exist in layer {2}", modelName, publisher, layer));
            }

            // Supports:
            // var:CODE
            // var : CODE
            // varCODE
            // var CODE
            layerCode = (from c in layerCodes where c.Substring(0, 3).ToLower() == layerInternal.ToLower() select c.Substring(3).Trim()).FirstOrDefault();
            if (!string.IsNullOrEmpty(layerCode) && layerCode[0] == ':')
            {
                layerCode = layerCode.Substring(1).Trim();
            }

            // An empty layer code is only allowed when either not specifying a layer, or when explicitly specifying the USR or USP layer.
            if (string.IsNullOrEmpty(layerCode) && !string.IsNullOrEmpty(layer) && String.Compare(layer, "USR", true) != 0 && String.Compare(layer, "USP", true) != 0)
            {
                throw new Exception(string.Format("Layer '{0}' requires an access code which couldn't be found in the Layer Codes argument", layer));
            }
        }
示例#7
0
        public async Task <string> RunServerAction([FromBody] RunServerActionArguments runServerActionArguments)
        {
            AuthToken token = AuthToken.AuthTokenHandler.Tokens.FirstOrDefault(x => x.Token == runServerActionArguments.token);

            if (token == null)
            {
                return(null);
            }
            if (!token.ServersAuthorized.Contains(runServerActionArguments.serverName))
            {
                return(null);
            }
            Config.Server server = Program.config.servers.First(x => x.name == runServerActionArguments.serverName);
            if (server.onDeviceProcess)
            {
                return(await server.commandToStart.BashAsync());
            }
            else
            {
                return(await Utilities.SendTcpRequest(Program.config.handlerIp, Program.config.handlerPort, server.commandToStart));
            }
        }