private UserAnswers ReadPerson(Worksheet sheet, int personRowIndex) { string itemRange = "A" + IdRowIndex + ":" + FinalColumn + IdRowIndex; string personRange = "A" + personRowIndex + ":" + FinalColumn + personRowIndex; string scaleRange = "A" + ScaleRowIndex + ":" + FinalColumn + ScaleRowIndex; List <string> scaleRow = CellReader.GetRange(scaleRange, sheet); List <string> itemRow = CellReader.GetRange(itemRange, sheet).Skip(NumEmptyScores).ToList(); List <string> scoresRow = CellReader.GetRange(personRange, sheet); string personName = scoresRow[0]; scoresRow = scoresRow.Skip(NumEmptyScores).ToList(); List <string> scaleNames = scaleRow.Distinct().ToList(); List <ScaleAnswers> scaleAnswersList = new List <ScaleAnswers>(); foreach (var scaleName in scaleNames) { List <int> indices = Enumerable.Range(0, scaleRow.Count) .Where(index => scaleRow[index] == scaleName) .ToList(); Dictionary <string, int> itemsToAnswersMap = new Dictionary <string, int>(); for (int k = 0; k < indices.Count; k++) { var index = indices[k]; var itemName = itemRow[index]; itemsToAnswersMap[itemName] = Convert.ToInt32(scoresRow[index]); } ScaleAnswers scaleAnswers = new ScaleAnswers() { ScaleName = scaleName, ItemToAnswerMap = itemsToAnswersMap }; scaleAnswersList.Add(scaleAnswers); } UserAnswers answers = new UserAnswers() { PersonName = personName, ScaleAnswers = scaleAnswersList }; return(answers); }
private ItemInformation GetInformationForRow(int i, Worksheet sheet) { string rowRange = "A" + i + ":" + "F" + i; List <string> row = CellReader.GetRange(rowRange, sheet); ItemInformation itemInformation = new ItemInformation() { ItemName = row[ItemIndex], Orientation = (row[ItemOrientationIndex] == "N") ? Orientation.Normal : Orientation.Reversed, ParameterA = Convert.ToDouble(row[ParameterAIndex]), ParameterB = Convert.ToDouble(row[ParameterBIndex]), ParameterC = Convert.ToDouble(row[ParameterCIndex]), ScaleName = row[ScaleIndex] }; return(itemInformation); }
private int GetNumItems(Worksheet sheet) { return(CellReader.GetRange(ScaleColumn, sheet).Count); }
private int GetNumPeople(Worksheet sheet) { List <string> personsList = CellReader.GetRange(PersonLabelsColumn, sheet); return(personsList.Count - 1); // Substract 1 for ID }
private List <double> GetIncreasingStepSize(Worksheet sheet) { List <string> row = CellReader.GetRange(StepSizeIncreasingRange, sheet); return(row.Select(Convert.ToDouble).ToList()); }
private List <double> GetStartingThetaList(Worksheet sheet) { List <string> row = CellReader.GetRange(StartingThetaRow, sheet); return(row.Select(Convert.ToDouble).ToList()); }