コード例 #1
0
        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();
        }
コード例 #2
0
        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);
        }