/// <summary> /// Constructor. /// </summary> public StudentAssignmentResultViewModel( AssignmentGroupResult assignmentGroupResult, IAssignmentDisplayProviderFactory displayProviderFactory) { LastName = assignmentGroupResult.LastName; FirstName = assignmentGroupResult.FirstName; Score = assignmentGroupResult.Score; Status = GetColoredText ( assignmentGroupResult.Status.GetColor(), assignmentGroupResult.Status.GetText(), assignmentGroupResult.Status.GetBold(), preventWrapping: true ); if (assignmentGroupResult.AssignmentResults.Count == 1) { var assignmentResult = assignmentGroupResult.AssignmentResults[0]; var displayProvider = displayProviderFactory.CreateDisplayProvider ( assignmentResult ); ChildTableData = displayProvider.GetChildTableData(); } else { ChildTableData = assignmentGroupResult.AssignmentResults .Select ( assignmentResult => new AssignmentResultViewModel ( assignmentResult, displayProviderFactory.CreateDisplayProvider(assignmentResult) ) ).Cast <object>().ToList(); } }
/// <summary> /// Constructor. /// </summary> public AssignmentGroupResultViewModel( AssignmentGroupResult result, IAssignmentDisplayProviderFactory displayProviderFactory) { Score = GetColoredText ( "black", $"{result.Score} / {result.TotalPoints}", bold: false, preventWrapping: true ); Status = GetColoredText ( result.Status.GetColor(), result.Status.GetText(), result.Status.GetBold(), preventWrapping: true ); if (result.AssignmentResults.Count == 1) { var assignmentResult = result.AssignmentResults[0]; var displayProvider = displayProviderFactory.CreateDisplayProvider ( assignmentResult ); var assignmentUrl = displayProvider.GetAssignmentUrl(); AssignmentName = assignmentUrl != null ? GetLink ( assignmentUrl, result.AssignmentGroupName, preventWrapping : true ) : GetColoredText ( "black", result.AssignmentGroupName, bold: false, preventWrapping: true ); DueDate = GetColoredText ( "black", displayProvider.GetAssignmentDueDate(), bold: false, preventWrapping: true ); ChildTableData = displayProvider.GetChildTableData(); } else { AssignmentName = GetColoredText ( "black", result.AssignmentGroupName, bold: false, preventWrapping: true ); DueDate = result.AssignmentResults.Any(a => a.AssignmentDueDate.HasValue) ? "Multiple" : "Unassigned"; ChildTableData = result.AssignmentResults .Select ( assignmentResult => new AssignmentResultViewModel ( assignmentResult, displayProviderFactory.CreateDisplayProvider(assignmentResult) ) ).Cast <object>().ToList(); } }