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); } }
private static IList <Viewer> GetViewers(IViewerAutomationBridge bridge, string accessionNumber) { try { return(bridge.GetViewersByAccessionNumber(accessionNumber)); } catch (FaultException <NoViewersFault> ) { // eat this exception, as it really just means that the user has closed all viewer workspaces return(new Viewer[0]); } }
public void Close(string accessionNumber) { try { using (IViewerAutomationBridge bridge = CreateBridge()) { foreach (Viewer viewer in bridge.GetViewersByAccessionNumber(accessionNumber)) { bridge.CloseViewer(viewer); } } } catch (FaultException <NoViewersFault> ) { // eat this exception, as it really just means that the user has closed all viewer workspaces } }
private static IList<Viewer> GetViewers(IViewerAutomationBridge bridge, string accessionNumber) { try { return bridge.GetViewersByAccessionNumber(accessionNumber); } catch (FaultException<NoViewersFault>) { // eat this exception, as it really just means that the user has closed all viewer workspaces return new Viewer[0]; } }