/// <summary> /// Called when [service stop]. /// </summary> protected override void OnServiceStop() { if (_dataReceiver == null) { return; } _dataReceiver.DataReceived -= DataReceiver_DataReceived; _dataReceiver.StopServer(); _dataReceiver.Dispose(); _dataReceiver = null; }
/// <summary> /// Disposes of the data receiver and sets the private value to null. /// </summary> private void DisposeDataReceiver() { if (_dataReceiver == null) { return; } _dataReceiver.DataReceived -= DataReceiver_DataReceived; _dataReceiver.Dispose(); _dataReceiver = null; }
/// <summary> /// Called when the service is started. /// </summary> protected override void OnServiceStart() { LogTrace(LogEntry.Create(AssociationStatus.ReceiveServiceStart)); _receiveServiceConfig = _getReceiveServiceConfig(); // Create a folder for saving data and the data saver object. var imageSaver = new ListenerDicomSaver(_receiveServiceConfig.RootDicomFolder); _dataReceiver = new ListenerDataReceiver(imageSaver); _dataReceiver.DataReceived += DataReceiver_DataReceived; // Start listening var serverStarted = _dataReceiver.StartServer( port: _receiveServiceConfig.GatewayDicomEndPoint.Port, getAcceptedTransferSyntaxes: () => _receiveServiceConfig.AcceptedSopClassesAndTransferSyntaxes, timeout: TimeSpan.FromSeconds(2)); if (!serverStarted) { throw new ArgumentException("Failed to start the Dicom data receiver. The input configuration is not correct.", nameof(_receiveServiceConfig)); } }