protected override void OnClosed(EventArgs e)
        {
            m_session.Dispose();
            m_session = null;

            base.OnClosed(e);
        }
        /// <inheritdoc />
        public void ReleaseSession(IServerSession session)
        {
            lock (_lock)
            {
                var removeCount = 0;
                for (var i = 0; i < _pool.Count; i++)
                {
                    var pooledSession = _pool[i];
                    if (IsAboutToExpire(pooledSession))
                    {
                        pooledSession.Dispose();
                        removeCount++;
                    }
                    else
                    {
                        break;
                    }
                }
                _pool.RemoveRange(0, removeCount);

                if (IsAboutToExpire(session))
                {
                    session.Dispose();
                }
                else
                {
                    _pool.Add(session);
                }
            }
        }
 /// <inheritdoc />
 public void Dispose()
 {
     if (!_disposed)
     {
         _disposed = true;
         _serverSession.Dispose();
     }
 }
Пример #4
0
 /// <inheritdoc />
 public void Dispose()
 {
     if (!_disposed)
     {
         _coreSession.Dispose();
         _serverSession?.Dispose();
         _disposed = true;
     }
 }
Пример #5
0
        protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
        {
            if (null != m_session)
            {
                m_session.Dispose();
                m_session = null;
            }

            base.OnClosing(e);
        }
 // protected methods
 protected virtual void Dispose(bool disposing)
 {
     if (!_disposed)
     {
         if (disposing)
         {
             if (_ownsWrapped)
             {
                 _wrapped.Dispose();
             }
         }
         _disposed = true;
     }
 }
        public MainWindow()
        {
            InitializeComponent();

            m_nodeComboBox.ItemsSource       = m_nodes;
            m_nodeComboBox.SelectionChanged += m_nodeComboBox_SelectionChanged;

            m_transferView.ItemsSource = m_transfers;

            m_session = CSAPI.Create().CreateServerSession(HOST, PORT);
            using (var result = m_session.Authenticate(USERNAME, PASSWORD))
            {
                if (!result.IsSuccess)
                {
                    m_errors.Text = "Login failed: " + result.ToString();
                    m_session.Dispose();
                    m_session = null;
                    return;
                }
            }

            using (var result = m_session.DataAccess.Brokers.Node.Read(m_session.ModelFactory.CreateAllSelector(), null))
            {
                if (result.IsSuccess)
                {
                    foreach (INode node in result.Value.Items)
                    {
                        NodeModel nm = new NodeModel()
                        {
                            Name = node.Name,
                            Id   = node.Id.ToString(),
                        };
                        m_nodes.Add(nm);
                    }
                }
                else
                {
                    m_errors.Text = result.ToString();
                    return;
                }
            }
        }
        private void m_loginButton_Click(object sender, RoutedEventArgs e)
        {
            m_session = m_api.CreateServerSession(m_host, m_port);

            bool isAuthenticated = false;

            try
            {
                using (var result = m_session.Authenticate(m_username.Text, m_password.Password))
                {
                    if (result.IsSuccess)
                    {
                        DialogResult = true;
                        Close();
                        isAuthenticated = true;
                    }
                    else
                    {
                        if (result.Result == AuthenticateResultType.AuthFailed)
                        {
                            m_error.Text = "Invalid username/password";
                        }
                        else if (result.Result == AuthenticateResultType.ServerRefused)
                        {
                            m_error.Text = "Server rejected authentication, could be starting up";
                        }
                        else
                        {
                            m_error.Text = "Failed login: " + result.ToString();
                        }
                    }
                }
            }
            finally
            {
                if (!isAuthenticated)
                {
                    m_session.Dispose();
                    m_session = null;
                }
            }
        }
        public MainWindow()
        {
            InitializeComponent();

            m_nodeComboBox.ItemsSource = m_nodes;
            m_nodeComboBox.SelectionChanged += m_nodeComboBox_SelectionChanged;

            m_transferView.ItemsSource = m_transfers;

            m_session = CSAPI.Create().CreateServerSession(HOST, PORT);
            using (var result = m_session.Authenticate(USERNAME, PASSWORD))
            {
                if (!result.IsSuccess)
                {
                    m_errors.Text = "Login failed: " + result.ToString();
                    m_session.Dispose();
                    m_session = null;
                    return;
                }
            }

            using (var result = m_session.DataAccess.Brokers.Node.Read(m_session.ModelFactory.CreateAllSelector(), null))
            {
                if (result.IsSuccess)
                {
                    foreach (INode node in result.Value.Items)
                    {
                        NodeModel nm = new NodeModel()
                        {
                            Name = node.Name,
                            Id = node.Id.ToString(),
                        };
                        m_nodes.Add(nm);
                    }
                }
                else
                {
                    m_errors.Text = result.ToString();
                    return;
                }
            }
        }
        private void m_loginButton_Click(object sender, RoutedEventArgs e)
        {
            m_session = m_api.CreateServerSession(m_host, m_port);

            bool isAuthenticated = false;
            try
            {
                using (var result = m_session.Authenticate(m_username.Text, m_password.Password))
                {
                    if (result.IsSuccess)
                    {
                        DialogResult = true;
                        Close();
                        isAuthenticated = true;
                    }
                    else
                    {
                        if (result.Result == AuthenticateResultType.AuthFailed)
                        {
                            m_error.Text = "Invalid username/password";
                        }
                        else if (result.Result == AuthenticateResultType.ServerRefused)
                        {
                            m_error.Text = "Server rejected authentication, could be starting up";
                        }
                        else
                        {
                            m_error.Text = "Failed login: " + result.ToString();
                        }
                    }
                }
            }
            finally
            {
                if (!isAuthenticated)
                {
                    m_session.Dispose();
                    m_session = null;
                }
            }
        }