public static int InsertTestResult(MCQTestResult testResult) { var existingTestResult = DataAccessLayer.SelectTestResult(testResult.TestId, testResult.StudentNumber); // If this student's test results for this test don't already exist in db id then insert them if (existingTestResult == null) { return(DataAccessLayer.InsertTestResult(Mapper.Map(testResult))); } // If this student's test results for this test already exist in db but existing MarksObtained are same or higher, do nothing else if (existingTestResult.MarksObtained >= testResult.SummaryMarks.Obtained) { return(0); } // If this student's test results for this test already exist in db and existing MarksObtained are less, delete that record and insert new one else if (existingTestResult.MarksObtained < testResult.SummaryMarks.Obtained) { DataAccessLayer.DeleteTestResult(existingTestResult.TestId, existingTestResult.StudentNumber); return(DataAccessLayer.InsertTestResult(Mapper.Map(testResult))); } // This code should really never run return(0); }
public static TestResult Map(MCQTestResult mcqTestResult) { return(new TestResult { TestId = mcqTestResult.TestId, StudentNumber = mcqTestResult.StudentNumber, FirstName = mcqTestResult.FirstName, LastName = mcqTestResult.LastName, MarksAvailable = mcqTestResult.SummaryMarks.Available, MarksObtained = mcqTestResult.SummaryMarks.Obtained, ScannedOn = mcqTestResult.ScannedOn }); }