public void Open(string accessionNumber) { try { using (IViewerAutomationBridge bridge = CreateBridge()) { var existingViewers = GetViewers(bridge, accessionNumber); if (existingViewers != null && existingViewers.Count > 0) { bridge.ActivateViewer(existingViewers[0]); } else { bridge.OpenStudiesByAccessionNumber(accessionNumber); } } } catch (QueryNoMatchesException e) { throw new QueryFailedException(String.Format("No studies with accession number {0} could be found.", accessionNumber), e); } catch (FaultException <QueryFailedFault> e) { throw new QueryFailedException(String.Format("Query failed for studies matching accession number {0}.", accessionNumber), e); } catch (FaultException <StudyNotFoundFault> e) { throw new OpenStudyException(accessionNumber, e); } catch (FaultException <StudyOfflineFault> e) { throw new OpenStudyException(accessionNumber, e); } catch (FaultException <StudyNearlineFault> e) { throw new OpenStudyException(accessionNumber, e); } catch (FaultException <StudyInUseFault> e) { throw new OpenStudyException(accessionNumber, e); } catch (FaultException <OpenStudiesFault> e) { throw new OpenStudyException(accessionNumber, e); } }
public void Activate(string accessionNumber) { try { using (IViewerAutomationBridge bridge = CreateBridge()) { foreach (Viewer viewer in bridge.GetViewersByAccessionNumber(accessionNumber)) { bridge.ActivateViewer(viewer); return; } } } catch (FaultException <NoViewersFault> ) { // eat this exception, as it really just means that the user has closed all viewer workspaces } }