예제 #1
0
 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); }
 }
예제 #2
0
 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
     }
 }