Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        /// <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);
        }
Ejemplo n.º 6
0
    /// <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());
    }
Ejemplo n.º 7
0
    /// <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());
    }