コード例 #1
0
        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));
        }
コード例 #2
0
        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
                }));
            }
        }
コード例 #3
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);
        }
コード例 #4
0
        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);;
        }
コード例 #5
0
 /// <summary>
 /// เพิ่มข้อมูล Student key ใหม่
 /// </summary>
 /// <param name="data">ข้อมูล Student key ที่ต้องการเพิ่ม</param>
 public async Task CreateNewStudentKey(StudentKey data)
 {
     await _mongoUtil.GetCollection <StudentKey>(TableName).InsertOneAsync(data);
 }
コード例 #6
0
        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);
        }
コード例 #7
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);
            }
        }
コード例 #8
0
        public override Task <Empty> DeleteStudent(StudentKey key, ServerCallContext context)
        {
            _service.DeleteStudent(key.Id);

            return(Task.FromResult(new Empty()));
        }