Ejemplo n.º 1
0
        /// <summary>
        /// Returns an array of the immutable ExperimentInfo objects that correspond to the supplied experimentInfo IDs. 
        /// </summary>
        /// <param name="experimentInfoIds"></param>
        /// <returns></returns>
        public static UssExperimentInfo[] GetExperimentInfos(int[] experimentInfoIds)
        {
            UssExperimentInfo[] experimentInfos=new UssExperimentInfo[experimentInfoIds.Length];
            for(int i=0; i<experimentInfoIds.Length;i++)
            {
                experimentInfos[i]=new  UssExperimentInfo();
            }
            // create sql connection
            DbConnection connection = FactoryDB.GetConnection();

            // create sql command
            // command executes the "RetrieveExperimentInfoByID" stored procedure
            DbCommand cmd = FactoryDB.CreateCommand("RetrieveExperimentInfoByID", connection);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(FactoryDB.CreateParameter(cmd,"@experimentInfoId", null, DbType.Int32));
            //execute the command
            try
            {
                connection.Open();
                for(int i=0;i<experimentInfoIds.Length;i++)
                {
                    // populate the parameters
                    cmd.Parameters["@experimentInfoId"].Value = experimentInfoIds[i];
                    DbDataReader dataReader = null;
                    dataReader=cmd.ExecuteReader();
                    while(dataReader.Read())
                    {
                        experimentInfos[i].experimentInfoId=experimentInfoIds[i];
                        if (dataReader[0] != System.DBNull.Value)
                            experimentInfos[i].labClientGuid = dataReader.GetString(0);
                        if(dataReader[1] != System.DBNull.Value )
                            experimentInfos[i].labServerGuid=dataReader.GetString(1);
                        if(dataReader[2] != System.DBNull.Value )
                            experimentInfos[i].labServerName=dataReader.GetString(2);
                        if(dataReader[3] != System.DBNull.Value )
                            experimentInfos[i].labClientVersion=dataReader.GetString(3);
                        if(dataReader[4] != System.DBNull.Value )
                            experimentInfos[i].labClientName=dataReader.GetString(4);
                        if(dataReader[5] != System.DBNull.Value )
                            experimentInfos[i].providerName=dataReader.GetString(5);
                        if(dataReader[6] != System.DBNull.Value )
                            experimentInfos[i].lssGuid=dataReader.GetString(6);
                    }
                    dataReader.Close();
                }
            }

            catch (Exception ex)
            {
                throw new Exception("Exception thrown in get experimentInfo",ex);
            }
            finally
            {
                connection.Close();
            }
            return experimentInfos;
        }
        /// <summary>
        /// This method fires when the Experiment dropdown changes.
        /// If the index is greater than zero, the specified Experiment will be looked up
        /// and its values will be used to populate the text fields on the form.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void ddlExperiment_SelectedIndexChanged(object sender, System.EventArgs e)
        {
            if(ddlExperiment.SelectedIndex == 0)
                // prepare for a new record
            {
                ClearFormFields();
                SetReadOnly(false);

            }
            else
                //retrieve an existing record
            {
                UssExperimentInfo expInfo = new UssExperimentInfo();
                expInfo = experimentInfos[ddlExperiment.SelectedIndex-1];
                txtLabClientName.Text = expInfo.labClientName;
                txtLabClinetVersion.Text = expInfo.labClientVersion;
                txtClientGuid.Text = expInfo.labClientGuid;
                txtClientGuid.ReadOnly = true;
                txtClientGuid.Enabled = false;
                txtLabServerID.Text = expInfo.labServerGuid;
                txtLabServerName.Text = expInfo.labServerName;
                txtProviderName.Text = expInfo.providerName;
                ddlLSS.ClearSelection();
                ddlLSS.Items.FindByValue(expInfo.lssGuid).Selected = true;
                // Make the serverice broker id field ReadOnly
                SetReadOnly(true);

            }
        }