public void RemoveSignalFromServer(string fullName) //removes Signal solution and data from server { Signals.Remove(Signals.FirstOrDefault(i => i.FullName == fullName)); _connector.Send(new RemoveScriptingInstanceRequest { Name = fullName, ScriptingType = ScriptingType.Signal, RemoveProject = true }); SignalInstanceRemoved?.Invoke(this, new EventArgs <string>(fullName)); ScriptingListUpdated?.Invoke(); }
public string SendSignalToServer(string solutionPath, string settingsPath) //saves Signal on server (does not start) { //if (!Directory.Exists(solutionPath)) // return "Solution directory does not exist"; string signalRelativePath; var levels = settingsPath.Split(Path.DirectorySeparatorChar); if (levels.Length > 3) { signalRelativePath = String.Join("\\", levels.Skip(levels.Length - 3)); //portfolio/strategy/signal } else { return("Invalid signal settings path"); } CopySignalDllsToSettingsDir(solutionPath, settingsPath); var files = GetCompressedSignalDataFiles(settingsPath); var name = signalRelativePath.Substring(signalRelativePath.LastIndexOf('\\') + 1); if (!files.Any(i => i.Key.EndsWith(name + ".dll"))) { return("Signal DLL does not exist"); } if (!String.IsNullOrEmpty(signalRelativePath) && Signals.Any(i => i.FullName == signalRelativePath)) { Signals.Remove(Signals.First(i => i.FullName == signalRelativePath)); SignalInstanceRemoved?.Invoke(this, new EventArgs <string>(signalRelativePath)); ScriptingListUpdated?.Invoke(); } _connector.Send(new SaveScriptingDataRequest { Files = files, Path = signalRelativePath, RequestID = Guid.NewGuid().ToString(), ScriptingType = ScriptingType.Signal }); return(null); }