public static ISession GetOrAddSession(UpdateService service) { if (!_sessions.ContainsKey(service.ID)) { ISession session = new Session(); session.SocketService = service; _sessions.Add(service.ID, session); } return _sessions[service.ID]; }
internal static void Handle(UpdateService service, string command) { ISession session = SessionStore.GetOrAddSession(service); string cmd = command.Split('|')[0]; string arg = String.Join("|", command.Split('|').Skip(1).ToArray()); switch (cmd) { case "execute": CodeExecutionRequest req = session.NewRequest(arg); req.SafeInvoke = true; //Invoke safely ICodeExecutionResult result = req.Execute(); service.GetServiceWriter("set|result").Write(result.Output); break; default: break; } }
/// <summary> /// Updates the SocketService to the new Service and notifys the client of all variables. /// This is done so the client immediately has access to all global variables /// </summary> /// <param name="newService"></param> private void UpdateSocketService(UpdateService newService) { _socketService = newService; NotifyChanged(VariableStore.Keys); }
public ServiceWriter(UpdateService service, string serviceName) { _service = service; _serviceName = serviceName; }