public IDisposable BindConnections()
        {
            return(_connectionProvider.GetConnections()
                   .Where(connectionInfo => connectionInfo.ServerInfos.Count > 0)
                   .ToList()
                   .SubscribeWithLog(openConnections =>
            {
                if (openConnections.Count > 0)
                {
                    _model.Connections.Clear();
                    _model.Connections.AddRange(
                        openConnections.Select(CreateConnectionItem));

                    if (_model.InitialConnectionInfo != null)
                    {
                        _model.SelectedConnection = _model.Connections
                                                    .FirstOrDefault(c => c.ConnectionInfo == _model.InitialConnectionInfo);
                    }
                    else
                    {
                        _model.SelectedConnection = _model.Connections
                                                    .FirstOrDefault();
                    }
                }
                else
                {
                    _model.Close(
                        new SelectTargetResult.NoConnectionsAvailable());
                }
            }));
        }
Example #2
0
        public TestEnvironmentViewModel(
            IViewFactory viewFactory,
            IConnectionProvider connectionProvider,
            DbCommandProvider dbCommandProvider,
            ParameterViewModelBuilder parameterViewModelBuilder)
        {
            _viewFactory                            = viewFactory;
            _connectionProvider                     = connectionProvider;
            _dbCommandProvider                      = dbCommandProvider;
            _parameterViewModelBuilder              = parameterViewModelBuilder;
            _connectionProvider.ConnectionsChanged += (sender, args) =>
            {
                Connections = BuildConnectionList(args.Connections);
                ActiveTest.SelectedConnection = Connections.First();
                ExecuteCommandHandler?.RaiseCanExecuteChanged();
            };

            Connections = BuildConnectionList(_connectionProvider.GetConnections());
            Tests       = new ObservableCollection <QueryStressTestViewModel>();

            AddNewQueryStressTest();
            OnConnectionChanged();

            ExecuteCommandHandler            = new CommandHandler((_) => Execute());
            StopCommandHandler               = new CommandHandler((_) => Stop());
            NewQueryStressTestCommandHandler = new CommandHandler((_) => AddNewQueryStressTest());
            ConnectionDropdownClosedCommand  = new CommandHandler((_) => OnConnectionDropdownClosed());
            ConnectionChangedCommand         = new CommandHandler((_) => OnConnectionChanged());
            DbCommandSelected            = new CommandHandler((dbCommand) => InvokeDbCommand((DbCommand)dbCommand));
            OpenParameterSettingsCommand = new CommandHandler((_) => OpenParameterSettings());
            RemoveTestCommand            = new CommandHandler((test) => RemoveTest((QueryStressTestViewModel)test));
        }
Example #3
0
        public string GetUserStatus(string userId)
        {
            return((_connectionProvider.GetConnections(userId).Any(con => con.State == ConnectionState.Connected))
                ? UserOnlineStatus
                : UserOfflineStatus);

            throw new NotImplementedException();
        }
        public IDisposable BindDisconnects()
        {
            var resetObservable = _broadcastService.Listen <ConnectionBroadcast>(
                b => b.Kind == ConnectionBroadcastKind.Close)
                                  .Select(_ => Unit.Default)
                                  .Merge(_broadcastService.Listen <ConnectionBroadcast>(
                                             b => b.Kind == ConnectionBroadcastKind.Disconnect)
                                         .Select(_ => Unit.Default));

            return(resetObservable
                   .SelectMany(_ => _connectionProvider.GetConnections().ToList())
                   .ObserveOn(RxApp.MainThreadScheduler)
                   .SubscribeWithLog(connections =>
            {
                var connection = _model.SelectedConnectionTarget?.ConnectionInfo;

                if (connection != null && connections.All(c => c.Id != connection.Id))
                {
                    _model.SelectedConnectionTarget = null;
                    _model.SelectedServerTarget = null;
                    _model.SelectedDatabaseTarget = null;
                }
            }));
        }
Example #5
0
 public static IEnumerable <IConnection> GetConnections(this IConnectionProvider connectionProvider, string userId)
 {
     return(connectionProvider.GetConnections().Where(con => con.User.Id.Equals(userId, StringComparison.InvariantCultureIgnoreCase)));
 }
 public MssqlQueryParameterSettings(IConnectionProvider connectionProvider)
 {
     DatabaseConnections = connectionProvider.GetConnections();
 }