private void StartMining()
        {
            if (_stratumSession != null)
                return;

            _stratumSession = new BitcoinMiner.StratumSession();
            _stratumSession.ConnectionConcluded += _stratumSession_ConnectionConcluded;
            _stratumSession.ConnectionFailure += _stratumSession_ConnectionFailure;

            var serverAddress = App.Settings.StratumIp;
            var serverPort = App.Settings.StratumPort;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Parse(serverAddress), serverPort);
            var workerName = UserDataManager.UserData.User.Username;
            var workerPassword = "";

            TimeSpan timeoutTimespan = new TimeSpan(0, 0, 30);
            _stratumSession.Connect(endpoint, workerName, workerPassword, timeoutTimespan);
        }
        private void StopMining()
        {
            if (_stratumSession == null)
                return;

            if (_miners != null)
            {
                foreach (var miner in _miners)
                    miner.IsStopRequested = true;
                _miners = null;
            }

            _stratumSession.Dispose();
            _stratumSession = null;
        }