public Response init(IEnumerable <Field> paramFields, Attempt paramAttempt, QuestionAssignment paramRowAssignment) { Score = 0; Retries = 0; subResponses = new StringableCollection <SubResponse>(paramFields.Select(f => new SubResponse(f.Value, f.subQuestionIndex))); Group = paramAttempt.Group; GroupID = paramAttempt.GroupID; Assignment = paramRowAssignment.Assignment; AssignmentNum = paramRowAssignment.AssignmentNum; Attempt = paramAttempt; QuestionAssignment = paramRowAssignment; QuestionNum = paramRowAssignment.QuestionNum; return(this); }
//dont pass in higher data structures public Question init(Purpose paramPurpose, string paramTitle, string paramComment, string paramLeft, string paramRight, long paramHash) { base.init(paramTitle, paramComment, paramLeft, paramRight, paramHash); //left and right already done Purpose = paramPurpose; QuestionAssignment dummy = new QuestionAssignment(0, 0, 0, 0); dummy.Question = this; dummy.Row = this; OutOf = new QuestionAssignmentHTML(dummy, false, 0).outOf; return(this); }
public Assignment init(IEnumerable <Row> paramRepeatedRows, Group paramGroup, byte paramAssignmentNum, string paramNameOptional, bool paramShuffleEnabled, int paramMarkLimit ) { Group = paramGroup; GroupID = paramGroup.GroupID; AssignmentNum = paramAssignmentNum; Row withTitle = paramRepeatedRows.Where(r => !string.IsNullOrEmpty(r.Title)) .FirstOrDefault(); Name = (string.IsNullOrEmpty(paramNameOptional)) ? (withTitle != null ? withTitle.Title : "untitled") : paramNameOptional; AttemptCount = 0; //ShuffleEnabled = paramShuffleEnabled; List <Row> rowsAddedSoFar = new List <Row>(); byte RowCount = 0; byte QuestionCount = 0; //question foreach (Row newRow in paramRepeatedRows) { Row rowFound = rowsAddedSoFar.FirstOrDefault(er => er.Hash == newRow.Hash) ?? newRow; //QUESTIONNM COUNTS NUMBER OF QUESTIONS ONLY //ROWNUM COUNTS ROWS AND QUESTIONS if (rowFound is Question) { QuestionAssignment newQA = new QuestionAssignment(++QuestionCount, GroupID, AssignmentNum, rowFound.Hash); ++RowCount; newQA.Row = rowFound; newQA.Group = Group; newQA.GroupID = GroupID; newQA.Assignment = this; newQA.AssignmentNum = AssignmentNum; newQA.Question = (rowFound as Question); QuestionAssignments.Add(newQA); } else { RowAssignment newRA = new RowAssignment(++RowCount, GroupID, AssignmentNum, rowFound.Hash); newRA.Row = rowFound; newRA.Group = Group; newRA.GroupID = GroupID; newRA.Assignment = this; newRA.AssignmentNum = AssignmentNum; newRA.Assignment = this; newRA.AssignmentNum = AssignmentNum; RowAssignments.Add(newRA); } if (!rowsAddedSoFar.Contains(rowFound)) { rowsAddedSoFar.Add(rowFound); } } OutOf = paramMarkLimit; if (OutOf == 0) { OutOf = QuestionAssignments.Sum(qa => qa.Question.OutOf); } return(this); //outcome //Outcome newOutcome = null; //if (!string.IsNullOrEmpty(r.Cells[1, paramOutcomeCol].Value2)) //{ // newOutcome = new Outcome(r.Cells[1, paramOutcomeCol].Value2); // if (!_Outcomes.Any(er => er.Hash == newOutcome.Hash)) // _Outcomes.Add(newOutcome); // else // newOutcome = _Outcomes.Single(er => er.Hash == newOutcome.Hash); //} ////add outcome to row //if (newOutcome != null) // newOutcome.Rows.Add(newRow); //newRow.Outcome = newOutcome; }