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); } } } }
/// <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)); } }
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)); } }