Пример #1
0
        public EvaluateJavaScript(ConnectionInfo cnn, string database)
        {
            _cnn = cnn;
            _databaseName = database;

            _control = new EvalJSControl();
            _control.EvaluateClicked += EvaluateClicked;
            _control.PreviewKeyUp += PreviewKeyUp;
        }
Пример #2
0
        public MongoConsole(string fullPathToexe, ConnectionInfo cnnInfo, string database)
        {
            _control = new EvalJSControl();
            _control.EvaluateClicked += ControlEvaluateClicked;
            _cnn = cnnInfo;

            LoadSettings();

            _control.Output.Text = string.Format("{0}\n", Properties.Resources.Console_AltEnterTip);
            _control.Output.Text += string.Format("{0}\n\n", Properties.Resources.Console_ClearTip);

            try
            {
                var psi = new ProcessStartInfo(fullPathToexe);
                // TODO: Username/password
                psi.Arguments = string.Format("{1}:{2}", fullPathToexe, _cnn.Host, _cnn.Port);
                psi.UseShellExecute = false;
                psi.CreateNoWindow = true;
                psi.RedirectStandardInput = true;
                psi.RedirectStandardOutput = true;
                psi.RedirectStandardError = true;

                _process = new Process();
                _process.StartInfo = psi;
                _process.OutputDataReceived += ProcessOutputDataReceived;
                _process.ErrorDataReceived += ProcessOutputDataReceived;
                _process.Exited += ProcessExited;
                _control.PreviewKeyUp += ControlPreviewKeyUp;
                _process.Start();
                _stdInput = _process.StandardInput;
                _process.BeginOutputReadLine();
            }
            catch (Exception ex)
            {
                _control.Output.Text = Properties.Resources.Console_ErrorOpening;
                // TODO: This setting isn't this classes responsibility
                Properties.Settings.Default.MongoExeLocation = string.Empty;
                Properties.Settings.Default.Save();
                Utilities.LogException(ex);
            }

            if (!string.IsNullOrEmpty(database))
            {
                _stdInput.WriteLine(string.Format("use {0}", database));
            }
        }