public override Task <CourseList> GetEnrolledCourses(StudentKey key, ServerCallContext context) { List <EnrollmentPoco> list = _service.GetEnrolledCourses(key.Id); CourseList rList = new CourseList(); foreach (var item in list) { rList.CourseList_.Add(ProtoMapper.MapFromCoursePoco(item.Course)); } return(Task.FromResult(rList)); }
public override Task <Student> GetStudent(StudentKey req, ServerCallContext context) { var poco = _service.GetStudent(req.Id); if (poco != null) { return(Task.FromResult(ProtoMapper.MapFromStudentPoco(poco))); } else { return(Task.FromResult(new Student() { Id = 0 })); } }
/// <summary> /// อัพเดทหรือเพิ่มข้อมูล Student key /// </summary> /// <param name="data">ข้อมูลที่ต้องการดำเนินการ</param> public void UpsertStudentKey(StudentKey data) { var update = Builders <StudentKey> .Update .Set(it => it.Code, data.Code) .Set(it => it.Grade, data.Grade) .Set(it => it.CourseCatalogId, data.CourseCatalogId) .Set(it => it.ClassRoomId, data.ClassRoomId) .Set(it => it.CreatedDate, data.CreatedDate) .Set(it => it.DeletedDate, data.DeletedDate); var updateOption = new UpdateOptions { IsUpsert = true }; _mongoUtil.GetCollection <StudentKey>(TableName) .UpdateOne(it => it.id == data.id, update, updateOption); }
public void StudentRPCTest() { var client = new Students.StudentsClient(_channel); Student student = new Student() { Id = 0, Name = "name1", Age = 33 }; StudentKey key = client.AddStudent(student); Assert.IsTrue(key.Id > 0); student.Id = key.Id; Student temp = client.GetStudent(key); Assert.AreEqual(temp.Id, student.Id); Assert.AreEqual(temp.Name, student.Name); Assert.AreEqual(temp.Age, student.Age); StudentList list = client.GetStudents(new Empty()); foreach (var item in list.StudentList_) { if (item.Id != student.Id) { continue; } Assert.AreEqual(item.Name, student.Name); Assert.AreEqual(item.Age, student.Age); } student.Name = "Name2"; student.Age = 43; client.UpdateStudent(student); temp = client.GetStudent(key); Assert.AreEqual(temp.Id, student.Id); Assert.AreEqual(temp.Name, student.Name); Assert.AreEqual(temp.Age, student.Age); client.DeleteStudent(key); temp = client.GetStudent(key); Assert.IsTrue(temp.Id == 0);; }
/// <summary> /// เพิ่มข้อมูล Student key ใหม่ /// </summary> /// <param name="data">ข้อมูล Student key ที่ต้องการเพิ่ม</param> public async Task CreateNewStudentKey(StudentKey data) { await _mongoUtil.GetCollection <StudentKey>(TableName).InsertOneAsync(data); }
public void EnrollmentRPCTest() { var clientCourse = new Courses.CoursesClient(_channel); var clientStudent = new Students.StudentsClient(_channel); var clientEnrollment = new Enrollments.EnrollmentsClient(_channel); Course course = new Course() { Id = 0, Name = "name1", }; CourseKey courseKey = clientCourse.AddCourse(course); Assert.IsTrue(courseKey.Id > 0); course.Id = courseKey.Id; Student student = new Student() { Id = 0, Name = "name1", Age = 33 }; StudentKey studentKey = clientStudent.AddStudent(student); Assert.IsTrue(studentKey.Id > 0); student.Name = "Name2"; student.Age = 44; studentKey = clientStudent.AddStudent(student); Assert.IsTrue(studentKey.Id > 0); student.Id = studentKey.Id; clientEnrollment.AddEnrollments(new EnrollmentKey() { StudentId = student.Id, CourseId = course.Id }); StudentList studentList = clientEnrollment.GetEnrolledStudents(new CourseKey() { Id = course.Id }); int cnt = 0; foreach (var item in studentList.StudentList_) { Assert.AreEqual(item.Id, student.Id); Assert.AreEqual(item.Name, student.Name); Assert.AreEqual(item.Age, student.Age); cnt++; } Assert.IsTrue(cnt == 1); CourseList courseList = clientEnrollment.GetEnrolledCourses(new StudentKey() { Id = student.Id }); cnt = 0; foreach (var item in courseList.CourseList_) { Assert.AreEqual(item.Id, course.Id); Assert.AreEqual(item.Name, course.Name); cnt++; } Assert.IsTrue(cnt == 1); clientEnrollment.RemoveEnrollments(new EnrollmentKey() { StudentId = student.Id, CourseId = course.Id }); cnt = 0; studentList = clientEnrollment.GetEnrolledStudents(new CourseKey() { Id = course.Id }); foreach (var item in studentList.StudentList_) { cnt++; } Assert.IsTrue(cnt == 0); courseList = clientEnrollment.GetEnrolledCourses(new StudentKey() { Id = student.Id }); foreach (var item in courseList.CourseList_) { cnt++; } Assert.IsTrue(cnt == 0); }
public void Put(string id, UpdateCourseInfoRequest body) { var isArgumentValid = !string.IsNullOrEmpty(id) && body != null && !string.IsNullOrEmpty(body.ClassRoomId); if (!isArgumentValid) { return; } var userprofile = _userprofileRepo.GetUserProfileById(id); if (userprofile == null) { return; } var isUserprofileValid = userprofile.Subscriptions != null && userprofile.Subscriptions.Any(); if (!isUserprofileValid) { return; } var isCanUpdateCourse = userprofile.Subscriptions.Any(it => it.ClassRoomId == body.ClassRoomId && it.Role == UserProfile.AccountRole.Teacher); if (!isCanUpdateCourse) { return; } var now = _dateTime.GetCurrentTime(); var isRequestUpdateStudentCode = !string.IsNullOrEmpty(body.ChangedStudentCode); if (isRequestUpdateStudentCode) { var selectedStudentKeyObj = _studentKeyRepo.GetStudentKeyByClassRoomId(body.ClassRoomId); if (selectedStudentKeyObj != null) { if (!selectedStudentKeyObj.DeletedDate.HasValue) { selectedStudentKeyObj.DeletedDate = now; _studentKeyRepo.UpsertStudentKey(selectedStudentKeyObj); } var newStudentKey = new StudentKey { id = Guid.NewGuid().ToString(), Grade = selectedStudentKeyObj.Grade, Code = body.ChangedStudentCode, CourseCatalogId = selectedStudentKeyObj.CourseCatalogId, ClassRoomId = selectedStudentKeyObj.ClassRoomId, CreatedDate = now }; _studentKeyRepo.UpsertStudentKey(newStudentKey); } } var isRequestUpdateClassName = !string.IsNullOrEmpty(body.ClassName); if (isRequestUpdateClassName) { var classRoom = _classRoomRepo.GetClassRoomById(body.ClassRoomId); if (classRoom != null) { classRoom.Name = body.ClassName; _classRoomRepo.UpsertClassRoom(classRoom); } } if (body.BeginDate.HasValue) { var classCalendar = _classCalendarRepo.GetClassCalendarByClassRoomId(body.ClassRoomId); var canUpdateClassCalendar = classCalendar != null; if (!canUpdateClassCalendar) { return; } classCalendar.BeginDate = body.BeginDate.Value; classCalendar.LastCalculateHolidayRequest = now; _classCalendarRepo.UpsertClassCalendar(classCalendar); } }
public override Task <Empty> DeleteStudent(StudentKey key, ServerCallContext context) { _service.DeleteStudent(key.Id); return(Task.FromResult(new Empty())); }