private void SetFactorAssignments() { var found = false; var currDataset = marrDatasetInfo[0]; var toRemove = 0; var NumFactors = currDataset.marrFactorAssnmnts.Count; while (NumFactors > 0 && toRemove < NumFactors) { foreach (var currFactor in marrFactorInfo) { if (currDataset.marrFactorAssnmnts[toRemove].Name.Equals( currFactor.mstrFactor)) { found = true; toRemove++; break; } found = false; } if (found) { continue; } // Not found; delete the factor foreach (var dataset in marrDatasetInfo) { dataset.marrFactorAssnmnts.RemoveAt(toRemove); } NumFactors--; } currDataset = marrDatasetInfo[0]; foreach (var currFactor in marrFactorInfo) { foreach (var factor in currDataset.marrFactorAssnmnts) { if (factor.Name.Equals( currFactor.mstrFactor)) { found = true; break; } found = false; } if (found) { continue; } // New factor, so add the first value to all the datasets foreach (var dataset in marrDatasetInfo) { var tmpFactor = new Factor(currFactor.mstrFactor, currFactor.marrValues[0]); dataset.marrFactorAssnmnts.Add(tmpFactor); } } }
/// <summary> /// Extract Factor information from a datatable /// to an arraylist of clsDatasetInfo type. /// </summary> /// <param name="dt"></param> /// <param name="factorsLoaded"></param> private void DatasetFactorInfo(DataTable dt, bool factorsLoaded) { var factorNames = clsDataTable.DataTableColumns(dt, true); // get data only columns var marrFactors = new List<string>(); marrDatasetInfo.Clear(); for (var i = 0; i < factorNames.Count; i++) { var dsetItem = new clsDatasetInfo(factorNames[i]); if (factorsLoaded) { for (var k = 0; k < dt.Rows.Count; k++) // go thru each row { var mDrow = dt.Rows[k]; if (i == 0) { var factorname = mDrow.ItemArray[i].ToString(); marrFactors.Add(factorname); } var currFactor = new Factor(marrFactors[k], mDrow.ItemArray[i + 1].ToString()); dsetItem.marrFactorAssnmnts.Add(currFactor); } //dsetItem.marrFactors = marrFactors; dsetItem.factorsSET = true; } marrDatasetInfo.Add(dsetItem); } }