/// <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); } }