public static AbstractConnection authorizedConnect(string theUser, bool isBse) { string securityPhrase = (isBse ? "" : "NON-BSE"); MockApp theApp = getTheApp(securityPhrase); DataSource src = VistaSetups.getSrc(theApp.SiteTable, theApp.LoginSitecode); AbstractDaoFactory f = AbstractDaoFactory.getDaoFactory(AbstractDaoFactory.getConstant(src.Protocol)); AbstractConnection cxn = f.getConnection(src); AbstractCredentials credentials = getVisitCredentials(theApp); AbstractPermission permission = new MenuOption(theApp.User.PermissionString); theApp.User = (User)cxn.authorizedConnect(credentials, permission, null); return(cxn); }
/// <summary> /// Use this setup method to authenticate to a real Vista system (both production and test) for the prupose /// of running a 'live' test(s) /// </summary> /// <param name="siteId">The site to authenticate against - should have a corresponding 'User###' entry in your secret-testObjects.xml file with valid credentials</param> /// <returns>AbstractConnection</returns> public AbstractConnection setup(string siteId) { DataSource source = this.SiteTable.getSite(siteId).Sources[0]; // TBD - should we loop through data sources to make sure we get VISTA protocol? AbstractDaoFactory f = AbstractDaoFactory.getDaoFactory(AbstractDaoFactory.getConstant(source.Protocol)); if (String.Equals(source.Protocol, "VISTA")) { return(this.Cxn = VistaSetups.authorizedConnect("User" + siteId, false)); } else { return(this.Cxn = f.getConnection(source)); } }
// This is the core visit method the others are using. The permission must have been set before // getting here. internal User doTheVisit(string sitecode, AbstractCredentials credentials, AbstractPermission permission) { Site site = mySession.SiteTable.getSite(sitecode); DataSource src = site.getDataSourceByModality("HIS"); if (src == null) { throw new Exception("No HIS data source at site " + sitecode); } AbstractDaoFactory factory = AbstractDaoFactory.getDaoFactory(AbstractDaoFactory.getConstant(src.Protocol)); myCxn = factory.getConnection(src); myCxn.Account.AuthenticationMethod = mySession.DefaultVisitMethod; if (!MdwsUtils.isValidCredentials(myCxn.Account.AuthenticationMethod, credentials, permission)) { throw new Exception("Invalid credentials"); } object result = null; if (myCxn.Account.AuthenticationMethod == VistaConstants.BSE_CREDENTIALS_V2WEB) { result = myCxn.authorizedConnect(credentials, permission, new DataSource() { ConnectionString = mySession.MdwsConfiguration.BseValidatorConnectionString }); } else { result = myCxn.authorizedConnect(credentials, permission, null); } if (result.GetType().Name.EndsWith("Exception")) { throw (Exception)result; } else { return((User)result); } }
public DataSourceArray connectToLoginSite(string sitecode) { DataSourceArray result = new DataSourceArray(); if (String.IsNullOrEmpty(sitecode)) { result.fault = new FaultTO(NO_SITECODE); } else if (mySession.SiteTable == null) { result.fault = new FaultTO(NO_SITE_TABLE); } else if (mySession.SiteTable.getSite(sitecode) == null) { result.fault = new FaultTO(SITE_NOT_IN_SITE_TABLE); } else if (mySession.ConnectionSet != null && mySession.ConnectionSet.Count > 0 && mySession.ConnectionSet.HasConnection(sitecode)) { result.fault = new FaultTO(ALREADY_CONNECTED_TO_SITE); } if (result.fault != null) { return(result); } try { Site site = mySession.SiteTable.getSite(sitecode); DataSource src = site.getDataSourceByModality("HIS"); AbstractDaoFactory factory = AbstractDaoFactory.getDaoFactory(AbstractDaoFactory.getConstant(src.Protocol)); AbstractConnection c = factory.getConnection(src); c.connect(); result = new DataSourceArray(src); result.items[0].welcomeMessage = c.getWelcomeMessage(); mySession.ConnectionSet.Add(c); } catch (Exception e) { result.fault = new FaultTO(e.Message); } return(result); }
protected void TestVistaSettingsClick(object sender, EventArgs e) { int port = 0; if (String.IsNullOrEmpty(textboxVistaIp.Text) || String.IsNullOrEmpty(textboxVistaPort.Text) || !Int32.TryParse(textboxVistaPort.Text, out port)) { labelMessage.Text = "Invalid Vista connection parameters. Please be sure to enter a valid IP address and port number"; return; } DataSource testSrc = new DataSource(); testSrc.Provider = textboxVistaIp.Text; testSrc.Modality = "HIS"; testSrc.Port = port; testSrc.Protocol = "VISTA"; testSrc.SiteId = new SiteId("900", "Test"); // this site id doesn't matter - it's just there because a site ID is expected by the code below string welcomeMsg = ""; try { AbstractDaoFactory factory = AbstractDaoFactory.getDaoFactory(AbstractDaoFactory.getConstant(testSrc.Protocol)); AbstractConnection cxn = factory.getConnection(testSrc); cxn.connect(); welcomeMsg = cxn.getWelcomeMessage(); cxn.disconnect(); } catch (Exception exc) { labelMessage.Text = "Unable to connect to that datasource. Please check your test system and try again." + "This might help figure out why:</p><p>" + exc.ToString() + "</p>"; return; } labelMessage.Text = "<p>You rock. Connection successfully established. You should put this site in your VhaSites.xml " + "file is you'd like it to be available later on via MDWS.</p><p>" + welcomeMsg + "</p>"; }
public DataSourceTO connectSite(string sitecode) { DataSourceTO result = new DataSourceTO(); if (String.IsNullOrEmpty(sitecode)) { result.fault = new FaultTO(NO_SITECODE); } else if (mySession.SiteTable == null || mySession.SiteTable.getSite(sitecode) == null) { result.fault = new FaultTO(NO_SITE_TABLE); } else if (mySession.ConnectionSet != null && mySession.ConnectionSet.Count > 0 && mySession.ConnectionSet.HasConnection(sitecode)) { result.fault = new FaultTO(ALREADY_CONNECTED_TO_SITE); } if (result.fault != null) { return(result); } try { Site site = (Site)mySession.SiteTable.Sites[sitecode]; DataSource dataSource = site.getDataSourceByModality("HIS"); AbstractDaoFactory factory = AbstractDaoFactory.getDaoFactory(AbstractDaoFactory.getConstant(dataSource.Protocol)); AbstractConnection c = factory.getConnection(dataSource); c.connect(); result = new DataSourceTO(dataSource); result.welcomeMessage = c.getWelcomeMessage(); mySession.ConnectionSet.Add(c); } catch (Exception e) { result.fault = new FaultTO(e.Message); } return(result); }