public Result <Class> UpdateClass(int classId, string name, string level) { if (!IsNameValid(name)) { return(Result.Failure <Class>(Status.BadRequest, "The class name is not valid.")); } if (!IsLevelValid(level)) { return(Result.Failure <Class>(Status.BadRequest, "The class level is not valid.")); } Class c; if ((c = _classGateway.FindById(classId)) == null) { return(Result.Failure <Class>(Status.NotFound, "Class not found.")); } { Class other = _classGateway.FindByName(name); if (other != null && other.ClassId != c.ClassId) { return(Result.Failure <Class>(Status.BadRequest, "A class with this name already exists.")); } } _classGateway.Update(classId, name, level); c = _classGateway.FindByName(name); return(Result.Success(Status.Ok, c)); }
public void can_create_find_update_and_delete_class() { ClassGateway sut = new ClassGateway(TestHelpers.ConnectionString); string name = TestHelpers.RandomTestName(); string level = TestHelpers.RandomLevel(); sut.Create(name, level); Class c; { c = sut.FindByName(name); CheckClass(c, name, level); } { c = sut.FindById(c.ClassId); CheckClass(c, name, level); } { name = TestHelpers.RandomTestName(); level = TestHelpers.RandomLevel(); sut.Update(c.ClassId, name, level); c = sut.FindById(c.ClassId); CheckClass(c, name, level); } { sut.Delete(c.ClassId); c = sut.FindById(c.ClassId); Assert.That(c, Is.Null); } }
public async Task <IActionResult> GetClassById(int id) { Result <ClassData> result = await _classGateway.FindById(id); IEnumerable <StudentData> resultStudents = await _classGateway.StudentClass(id); result.Content.Students = resultStudents; return(this.CreateResult(result)); }
public void can_assign_teacher() { TeacherGateway teacherGateway = new TeacherGateway(TestHelpers.ConnectionString); string firstName = TestHelpers.RandomTestName(); string lastName = TestHelpers.RandomTestName(); teacherGateway.Create(firstName, lastName); Teacher teacher1 = teacherGateway.FindByName(firstName, lastName); ClassGateway sut = new ClassGateway(TestHelpers.ConnectionString); string name = TestHelpers.RandomTestName(); string level = TestHelpers.RandomLevel(); sut.Create(name, level, teacher1.TeacherId); Class c; { c = sut.FindByName(name); CheckClass(c, name, level, teacher1.TeacherId); } { string firstName2 = TestHelpers.RandomTestName(); string lastName2 = TestHelpers.RandomTestName(); teacherGateway.Create(firstName2, lastName2); Teacher teacher2 = teacherGateway.FindByName(firstName2, lastName2); sut.AssignTeacher(c.ClassId, teacher2.TeacherId); c = sut.FindById(c.ClassId); CheckClass(c, name, level, teacher2.TeacherId); sut.AssignTeacher(c.ClassId, 0); c = sut.FindById(c.ClassId); CheckClass(c, name, level, 0); teacherGateway.Delete(teacher2.TeacherId); } sut.Delete(c.ClassId); teacherGateway.Delete(teacher1.TeacherId); }
public async Task can_create_find_update_and_delete_class() { ClassGateway sut = new ClassGateway(TestHelpers.ConnectionString); string name = TestHelpers.RandomTestName(); string level = TestHelpers.RandomLevel(); Result <int> result = await sut.Create(name, level); Assert.That(result.Status, Is.EqualTo(Status.Created)); int classId = result.Content; Result <ClassData> classData; { classData = await sut.FindById(classId); CheckClass(classData, name, level); } { name = TestHelpers.RandomTestName(); level = TestHelpers.RandomLevel(); await sut.Update(classId, name, level); classData = await sut.FindById(classId); CheckClass(classData, name, level); } { Result r = await sut.Delete(classId); Assert.That(r.Status, Is.EqualTo(Status.Ok)); classData = await sut.FindById(classId); Assert.That(classData.Status, Is.EqualTo(Status.NotFound)); } }
public Result AssignClass(int teacherId, int classId) { Class c = null; if (_teacherGateway.FindById(teacherId) == null) { return(Result.Failure(Status.BadRequest, "Unknown teacher.")); } if (classId != 0 && (c = _classGateway.FindById(classId)) == null) { return(Result.Failure(Status.BadRequest, "Unknown class.")); } if (c != null && c.TeacherId != 0 && c.TeacherId != teacherId) { return(Result.Failure(Status.BadRequest, "Class already assigned.")); } _teacherGateway.AssignClass(teacherId, classId); return(Result.Success(Status.Ok)); }
public async Task <IActionResult> GetClassById(int id) { Result <ClassData> result = await _classGateway.FindById(id); return(this.CreateResult(result)); }