public EditModel(Guid id, UpdateModel model, IGradeBoundaries boundaries) : this(id, model.Name, GenerateResultsFromUpdateModel(model, boundaries), model.TotalMarks, new ResultRow(Guid.Empty, model.NewRow.Surname, model.NewRow.Forenames, null, null), null) { }
public EditModel( IAssessment assessment, IGradeBoundaries boundaries, int? lastSelectedResult) : this(assessment.Id, assessment.Name, GenerateResultsFromRepoModels(assessment, boundaries), assessment.TotalMarks, GetSelectedResultIndex(lastSelectedResult, assessment.Results)) { }
private static List<ResultRow> GenerateResultsFromUpdateModel(UpdateModel model, IGradeBoundaries boundaries) { if (model.Results == null) { return new List<ResultRow>(); } return model.Results.Select( r => new ResultRow( r.RowId, r.Surname, r.Forenames, r.Result, r.Result / model.TotalMarks * 100, boundaries.Boundaries.ForResult(r.Result))).ToList(); }
private static IList<ResultRow> GenerateResultsFromRepoModels( IAssessment assessment, IGradeBoundaries boundaries) { var results = from result in assessment.Results let grade = boundaries.Boundaries.ForResult(result.Result) let percentage = result.Result / assessment.TotalMarks * 100 select new ResultRow(result.Id, result.Surname, result.Forenames, result.Result, percentage, grade); return results.ToList(); }
private static IList<GradeBoundary> ForExport(IGradeBoundaries gradeBoundaries) { return gradeBoundaries.Boundaries.Select(b => new GradeBoundary { Grade = b.Grade, MinResult = b.MinResult }).ToList(); }
private static Assessment ForExport(IAssessment assessment, IGradeBoundaries gradeBoundaries) { return new Assessment { TotalMarks = assessment.TotalMarks, Rows = ForExport(assessment.Results), GradeBoundaries = ForExport(gradeBoundaries) }; }