Exemple #1
0
        protected virtual async Task OnStopped(string QueueName)
        {
            _heartBeatTimer.Stop();

            var connectionManager = _services.GetRequiredService <IConnectionManager>();

            try
            {
                using (TransactionScope transactionScope = new TransactionScope(TransactionScopeOption.RequiresNew, TransactionScopeAsyncFlowOption.Enabled))
                    using (var dbconnection = await connectionManager.CreateSSSBConnectionAsync(CancellationToken.None))
                    {
                        await _pubSubHelper.UnSubscribe(dbconnection, TimeSpan.FromDays(365 * 10), _conversationGroup);

                        transactionScope.Complete();
                    }
            }
            catch (Exception ex)
            {
                _logger.LogError(ErrorHelper.GetFullMessage(ex));
            }
        }
Exemple #2
0
        private void startOffScreenCapture(
            string aSymbolicLink,
            uint aStreamIndex,
            uint aMediaTypeIndex)
        {
            mOffScreenCaptureProcess = new Process();

            mOffScreenCaptureProcess.StartInfo.FileName = "InterProcessRendererAsync.exe";

            mOffScreenCaptureProcess.EnableRaisingEvents = true;

            mOffScreenCaptureProcess.Exited += mOffScreenCaptureProcess_Exited;

            mPipeProcessor = new PipeProcessor(
                "Server",
                "Client");

            mPipeProcessor.MessageDelegateEvent += lPipeProcessor_MessageDelegateEvent;

            mOffScreenCaptureProcess.StartInfo.Arguments =
                "SymbolicLink=" + aSymbolicLink + " " +
                "StreamIndex=" + aStreamIndex + " " +
                "MediaTypeIndex=" + aMediaTypeIndex + " " +
                "WindowHandler=" + mVideoPanel.Handle.ToInt64();

            mOffScreenCaptureProcess.StartInfo.UseShellExecute = false;

            try
            {
                HeartBeatTimer.Start();

                mIsStarted = mOffScreenCaptureProcess.Start();
            }
            catch (Exception)
            {
                HeartBeatTimer.Stop();

                mIsStarted = false;
            }
        }
Exemple #3
0
        private void mLaunchButton_Click(object sender, RoutedEventArgs e)
        {
            if (mLaunchButton.Content == "Stop")
            {
                if (mIsStarted)
                {
                    closeOffScreenCapture();

                    HeartBeatTimer.Stop();

                    mLaunchButton.Content = "Launch";
                }

                mIsStarted = false;

                return;
            }

            var lSourceNode = mSourcesComboBox.SelectedItem as XmlNode;

            if (lSourceNode == null)
            {
                return;
            }

            var lNode = lSourceNode.SelectSingleNode("Source.Attributes/Attribute[@Name='MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_SYMBOLIC_LINK']/SingleValue/@Value");

            if (lNode == null)
            {
                return;
            }

            string lSymbolicLink = lNode.Value;

            lSourceNode = mStreamsComboBox.SelectedItem as XmlNode;

            if (lSourceNode == null)
            {
                return;
            }

            lNode = lSourceNode.SelectSingleNode("@Index");

            if (lNode == null)
            {
                return;
            }

            uint lStreamIndex = 0;

            if (!uint.TryParse(lNode.Value, out lStreamIndex))
            {
                return;
            }

            lSourceNode = mMediaTypesComboBox.SelectedItem as XmlNode;

            if (lSourceNode == null)
            {
                return;
            }

            lNode = lSourceNode.SelectSingleNode("@Index");

            if (lNode == null)
            {
                return;
            }

            uint lMediaTypeIndex = 0;

            if (!uint.TryParse(lNode.Value, out lMediaTypeIndex))
            {
                return;
            }

            string lextendSymbolicLink = lSymbolicLink + " --options=" +
                                         "<?xml version='1.0' encoding='UTF-8'?>" +
                                         "<Options>" +
                                         "<Option Type='Cursor' Visiblity='True'>" +
                                         "<Option.Extensions>" +
                                         "<Extension Type='BackImage' Height='100' Width='100' Fill='0x7055ff55' />" +
                                         "</Option.Extensions>" +
                                         "</Option>" +
                                         "</Options>";


            lextendSymbolicLink += " --normalize=Landscape";

            startOffScreenCapture(lextendSymbolicLink,
                                  lStreamIndex,
                                  lMediaTypeIndex);

            mLaunchButton.Content = "Stop";
        }