protected override void ProcessDataTable(EducationSecurityPrincipal user, DataTable dataTable, ServiceUploadModel model) { string studentSISId, subjectName; Subject subject = new Subject(); int duration; DateTime? dateAttended; Student student; for (int i = StartRow; i < dataTable.Rows.Count; i++) { studentSISId = dataTable.Rows[i][1].ToString(); subjectName = dataTable.Rows[i][3].ToString(); student = StudentRepository.Items.Where(s => s.StudentSISId == studentSISId).SingleOrDefault(); subject = RetrieveSubject(subjectName); if (IsValidServiceOffering(user, i, studentSISId, student, dataTable, out dateAttended, out duration, model, subject)) { string notes = dataTable.Rows[i][5].ToString(); var studentAssignedOffering = StudentAssignedOfferingRepository.Items.Where(s => s.StudentId == student.Id && s.ServiceOfferingId == model.ServiceOfferingId).FirstOrDefault(); if (studentAssignedOffering == null) { studentAssignedOffering = CreateNewStudentAssignedOffering(student, model, user); } Create(studentAssignedOffering, (DateTime)dateAttended, subject, duration, notes, user); model.SuccessfulRowsCount++; } model.ProcessedRowCount++; } }
private void Create(StudentAssignedOffering studentAssignedOffering, DateTime dateAttended, Subject subject, decimal duration, string notes, EducationSecurityPrincipal user) { var newAttendance = new ServiceAttendance(); newAttendance.StudentAssignedOffering = studentAssignedOffering; newAttendance.DateAttended = dateAttended; newAttendance.Subject = subject; newAttendance.Duration = duration; newAttendance.Notes = notes; newAttendance.CreatingUser = user.Identity.User; ServiceAttendanceRepository.Add(newAttendance); }
public void GivenASubject_WhenUpdate_ThenContextSetsModified() { var expected = new Subject { Id = 1 }; Target.ExpectException<NotSupportedException>(() => Target.Update(expected)); }
public void GivenASubject_WhenRemove_ThenRemoveFromContext() { var item = new Subject { Id = 1 }; Target.ExpectException<NotSupportedException>(() => Target.Remove(item)); }
public void GivenASubject_WhenAdd_ThenAddToContext() { var expected = new Subject { Id = 1 }; Target.ExpectException<NotSupportedException>(() => Target.Add(expected)); }
public void Update(Subject item) { throw new NotSupportedException("Update is not supported in this repository"); }
public void Remove(Subject item) { throw new NotSupportedException("Remove is not supported in this repository"); }
public void Add(Subject item) { throw new NotSupportedException("Add is not supported in this repository"); }
private static bool MatchProperties(ServiceAttendance actualState, StudentAssignedOffering expectedStudentAssignedOffering, DateTime expectedDateAttended, Subject expectedSubject, decimal expectedDuration, string expectedNotes) { Assert.AreEqual(expectedStudentAssignedOffering, actualState.StudentAssignedOffering); Assert.AreEqual(expectedDateAttended, actualState.DateAttended); Assert.AreEqual(expectedSubject.Id, actualState.Subject.Id); Assert.AreEqual(expectedDuration, actualState.Duration); Assert.AreEqual(expectedNotes, actualState.Notes); return true; }
private Subject RetrieveSubject(string subjectName) { if (subjectName == string.Empty) { if (_DefaultSubjectCache == null) { _DefaultSubjectCache = SubjectRepository.Items.Where(s => s.Name.Equals(Subject.DefaultName)).FirstOrDefault(); } return _DefaultSubjectCache; } else { return SubjectRepository.Items.Where(s => s.Name.Equals(subjectName)).FirstOrDefault(); } }
private bool IsValidServiceOffering(EducationSecurityPrincipal user, int index, string studentSISId, Student student, DataTable dataTable, out DateTime? dateAttended, out int duration, ServiceUploadModel model, Subject subject) { dateAttended = null; duration = 0; string subjectName = dataTable.Rows[index][3].ToString(); if (studentSISId == null || student == null) { ProcessError(dataTable.Rows[index], string.Format(CultureInfo.CurrentCulture, "Malformed Student Id on row {0}", index + 1), model); return false; } else if (!GrantUserAccessToSchedulingAnOffering(user, student)) { ProcessError(dataTable.Rows[index], string.Format(CultureInfo.CurrentCulture, "You do not have permission to interact with the referenced student on row {0}", index + 1), model); return false; } else if (!ExcelUtility.TryGetOADate(dataTable.Rows[index][2].ToString(), out dateAttended)) { ProcessError(dataTable.Rows[index], string.Format(CultureInfo.CurrentCulture, "Malformed Date Attended on row {0}", index + 1), model); return false; } else if (subject == null) { ProcessError(dataTable.Rows[index], string.Format(CultureInfo.CurrentCulture, "Malformed Subject on row {0}", index + 1), model); return false; } else if (dataTable.Rows[index][4].ToString() != string.Empty && !int.TryParse(dataTable.Rows[index][4].ToString(), out duration)) { ProcessError(dataTable.Rows[index], string.Format(CultureInfo.CurrentCulture, "Malformed Duration on row {0}", index + 1), model); return false; } return true; }