Пример #1
0
        public GetCourseInfoRespond ChangeCourse(ChangeCourseRequest body)
        {
            var isArgumentValid = body != null && !string.IsNullOrEmpty(body.UserProfileId) && !string.IsNullOrEmpty(body.ClassRoomId);
            if (!isArgumentValid) return null;

            var userprofileId = body.UserProfileId;
            var classRoomId = body.ClassRoomId;

            var userProfile = _userprofileRepo.GetUserProfileById(userprofileId);
            if (userProfile == null || userProfile.DeletedDate.HasValue) return null;

            var classRoom = _classRoomRepo.GetClassRoomById(classRoomId);
            if (classRoom == null || classRoom.DeletedDate.HasValue) return null;

            var isUserProfileDataValid = userProfile.Subscriptions != null
                && userProfile.Subscriptions.Any()
                && userProfile.Subscriptions.Where(it => !it.DeletedDate.HasValue).Any(it => it.ClassRoomId == classRoomId);
            if (!isUserProfileDataValid) return null;

            var selectedSubscription = userProfile.Subscriptions
                    .Where(it => !it.DeletedDate.HasValue)
                    .FirstOrDefault(it => it.ClassRoomId == classRoomId);
            if (selectedSubscription != null)
            {
                var now = _dateTime.GetCurrentTime();
                selectedSubscription.LastActiveDate = now;
                _userprofileRepo.UpsertUserProfile(userProfile);
            }

            var lastSubscription = userProfile.Subscriptions.OrderByDescending(it => it.LastActiveDate).FirstOrDefault(it => !it.DeletedDate.HasValue);
            if (lastSubscription == null) return null;

            var courseInfoRespond = new GetCourseInfoRespond()
            {
                UserProfileId = userprofileId,
                ClassRoomId = classRoom.id,
                IsTeacher = lastSubscription.Role == UserProfile.AccountRole.Teacher,
                ClassName = classRoom.Name,
                IsSelfPurchase = selectedSubscription.Role == UserProfile.AccountRole.SelfPurchaser,
            };

            if (lastSubscription.Role == UserProfile.AccountRole.Teacher)
            {
                var studentKey = _studentKeyRepo.GetStudentKeyByClassRoomId(classRoomId);
                if (studentKey != null && !studentKey.DeletedDate.HasValue) courseInfoRespond.CurrentStudentCode = studentKey.Code;
            }

            var classCarlendar = _classCalendarRepo.GetClassCalendarByClassRoomId(lastSubscription.ClassRoomId);
            if (classCarlendar != null && !classCarlendar.DeletedDate.HasValue) courseInfoRespond.StartDate = classCarlendar.BeginDate;

            courseInfoRespond.NumberOfStudents = _userprofileRepo.GetUserProfilesByClassRoomId(classRoomId).Count();
            return courseInfoRespond;
        }
Пример #2
0
        public GetCourseInfoRespond GetCourseInfo(string id, string classRoomId)
        {
            var isArgumentValid = !string.IsNullOrEmpty(id) && !string.IsNullOrEmpty(classRoomId);
            if (!isArgumentValid) return null;

            var userProfile = _userprofileRepo.GetUserProfileById(id);
            if (userProfile == null || userProfile.DeletedDate.HasValue) return null;

            var classRoom = _classRoomRepo.GetClassRoomById(classRoomId);
            if (classRoom == null || classRoom.DeletedDate.HasValue) return null;

            var isUserProfileDataValid = userProfile.Subscriptions != null
                && userProfile.Subscriptions.Any();
            if (!isUserProfileDataValid) return null;

            var lastSubscription = userProfile.Subscriptions.OrderByDescending(x => x.LastActiveDate).FirstOrDefault(x => !x.DeletedDate.HasValue);
            if (lastSubscription == null) return null;

            var courseInfoRespond = new GetCourseInfoRespond()
            {
                UserProfileId = id,
                ClassRoomId = classRoom.id,
                IsTeacher = lastSubscription.Role == UserProfile.AccountRole.Teacher,
                ClassName = classRoom.Name,
            };

            if (lastSubscription.Role == UserProfile.AccountRole.Teacher)
            {
                var studentKey = _studentKeyRepo.GetStudentKeyByClassRoomId(classRoomId);
                if (studentKey != null && !studentKey.DeletedDate.HasValue) courseInfoRespond.CurrentStudentCode = studentKey.Code;
            }

            var classCarlendar = _classCalendarRepo.GetClassCalendarByClassRoomId(lastSubscription.ClassRoomId);
            if (classCarlendar != null && !classCarlendar.DeletedDate.HasValue) courseInfoRespond.StartDate = classCarlendar.BeginDate;

            courseInfoRespond.NumberOfStudents = _userprofileRepo.GetUserProfilesByClassRoomId(classRoomId).Count();
            return courseInfoRespond;
        }