public string connect(string sitecode) { DataSourceArray result = _svc.connect(sitecode); if (result.fault != null) { throw new ApplicationException(result.fault.message); } return(result.items[0].welcomeMessage); }
/// <summary> /// Connect to a Vista and authenticate the user /// </summary> /// <param name="sitecode">User's site ID (getVHA returns a list of site IDs)</param> /// <param name="username">User's access code</param> /// <param name="password">User's verify code</param> /// <returns>UserTO</returns> public UserTO connectAndLogin(string sitecode, string username, string password) { DataSourceArray connectResult = _svc.connect(sitecode); if (connectResult.fault != null) { throw new ApplicationException(connectResult.fault.message); } UserTO user = _svc.login(username, password, ""); if (user.fault != null) { throw new ApplicationException(user.fault.message); } return(user); }
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); }
public DataSourceArray connectToLoginSite(string sitecode) { // TODO - FIX!!! This is very ugly - here so that SOAP and REST services can both be stateful or stateless if (!Convert.ToBoolean(_mySession.MdwsConfiguration.AllConfigs[MdwsConfigConstants.CONNECTION_POOL_CONFIG_SECTION][MdwsConfigConstants.CONNECTION_POOLING])) { return(new gov.va.medora.mdws.ConnectionLib(_mySession).connectToLoginSite(sitecode)); } DataSourceArray result = new DataSourceArray(); try { MdwsUtils.checkNullArgs(MdwsUtils.getArgsDictionary(System.Reflection.MethodInfo.GetCurrentMethod().GetParameters(), new List <object>() { sitecode })); MdwsUtils.checkSiteTable(_mySession, sitecode); MdwsUtils.checkConnections(_mySession, sitecode); Site site = _mySession.SiteTable.getSite(sitecode); DataSource src = site.getDataSourceByModality("HIS"); AbstractDaoFactory factory = AbstractDaoFactory.getDaoFactory(AbstractDaoFactory.getConstant(src.Protocol)); // REST SessionMgr.getInstance().setConnection(_mySession, sitecode); // END REST result = new DataSourceArray(src); result.items[0].welcomeMessage = "TODO - implement cached connection messages in pool"; } catch (Exception e) { result.fault = new FaultTO(e.Message); } finally { //RestSessionMgr.getInstance().returnConnections(_mySession); } return(result); }
/// <summary> /// Connect to and log onto a data source. /// </summary> /// <remarks> /// Combines connecting, authentication and authorization into a single function. /// It will create a new set of session credentials and a primary permission. /// These credentials can then be used for subsequent visits. Calls login. /// </remarks> /// <param name="sourceId">Station number</param> /// <param name="accountId">Access code</param> /// <param name="accountPwd">Verify code</param> /// <param name="permissionString">If blank defaults to CPRS context</param> /// <returns>UserTO</returns> public UserTO connectAndLogin(string sourceId, string accountId, string accountPwd, string permissionString) { UserTO result = new UserTO(); if (sourceId == "") { result.fault = new FaultTO("Missing source ID"); } else if (accountId == "") { result.fault = new FaultTO("Missing account ID"); } else if (accountPwd == "") { result.fault = new FaultTO("Missing account password"); } if (result.fault != null) { return(result); } try { ConnectionLib cxnLib = new ConnectionLib(mySession); DataSourceArray da = cxnLib.connectToLoginSite(sourceId); if (da.fault != null) { result.fault = da.fault; return(result); } result = login(accountId, accountPwd, permissionString); } catch (Exception e) { result.fault = new FaultTO(e.Message); } return(result); }
/// <summary> /// another version of login that takes additional params /// used from the communicator and and clients that store sitelist and /// context in places other than a config file /// </summary> /// <param name="strUN"></param> /// <param name="strPA"></param> /// <param name="strSiteList"></param> /// <param name="strContext"></param> /// <param name="toUser"></param> /// <returns></returns> protected CStatus Login( string strUN, string strPA, string strSiteList, string strContext, out UserTO toUser) { toUser = null; try { //connect to MDWS DataSourceArray dsa = GetMDWSSOAPClient().connect(strSiteList); if (dsa == null || dsa.fault != null && dsa.fault.message != "You are already connected to that site") { //return new CMDWSStatus(dsa.fault); return(new CStatus(false, k_STATUS_CODE.Failed, "TODO")); } //login to mdws toUser = GetMDWSSOAPClient().login( strUN, strPA, strContext); if (toUser == null || toUser.fault != null) { //return new CMDWSStatus(toUser.fault); return(new CStatus(false, k_STATUS_CODE.Failed, ErrorMessages.ERROR_LOGIN)); } } catch (Exception e) { return(new CStatus(false, k_STATUS_CODE.Failed, e.Message)); } return(new CStatus()); }
/// <summary> /// US:840 /// helper to connect and login to MDWS /// </summary> /// <param name="strUN"></param> /// <param name="strPA"></param> /// <param name="toUser"></param> /// <param name="mdws"></param> /// <returns></returns> protected CStatus Login( string strUN, string strPA, long lSiteID, out UserTO toUser, out EmrSvcSoapClient mdws) { toUser = null; mdws = null; //mdws try { mdws = new EmrSvcSoapClient("EmrSvcSoap"); } catch (Exception e) { return(new CStatus(false, k_STATUS_CODE.Failed, e.Message)); } //initialize sitelist and context //todo: using appsettings unencrypted string strSiteList = Convert.ToString(lSiteID); //site id is now passed in because user chooses it from //the login dialog. //ConfigurationSettings.AppSettings["MDWSEmrSvcSiteList"]; string strContext = ConfigurationSettings.AppSettings["MDWSEmrSvcContext"]; try { //connect to MDWS DataSourceArray dsa = mdws.connect(strSiteList); if (dsa == null || dsa.fault != null && dsa.fault.message != "You are already connected to that site") { if (dsa.fault != null) { return(new CMDWSStatus(dsa.fault)); } else { return(new CStatus(false, k_STATUS_CODE.Failed, "An undefined error occurred while connecting to MDWS!")); } } //disconnect mdws.disconnect(); //try to re-connect dsa = mdws.connect(strSiteList); if (dsa == null || dsa.fault != null) { //return new CMDWSStatus(dsa.fault); return(new CStatus(false, k_STATUS_CODE.Failed, "TODO")); } //login to mdws toUser = mdws.login( strUN, strPA, strContext); //todo: just a reminder.... strUN = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; strPA = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; if (toUser == null || toUser.fault != null) { //return new CMDWSStatus(toUser.fault); return(new CStatus(false, k_STATUS_CODE.Failed, ErrorMessages.ERROR_LOGIN)); } } catch (Exception e) { return(new CStatus(false, k_STATUS_CODE.Failed, e.Message)); } return(new CStatus()); }