public void ApplyToAllCourse(ApplyToAllCourseRequest body)
        {
            var areArgumentsValid = body != null
                && !string.IsNullOrEmpty(body.UserProfileId)
                && !string.IsNullOrEmpty(body.ClassRoomId);
            if (!areArgumentsValid) return;

            UserProfile userprofile;
            var canAccessToCourse = validateAccessToCourseScheduleManagement(body.UserProfileId, body.ClassRoomId, out userprofile);
            if (!canAccessToCourse) return;

            var masterClassCalendar = _classCalendarRepo.GetClassCalendarByClassRoomId(body.ClassRoomId);
            var isMasterClassCalendarValid = masterClassCalendar != null && !masterClassCalendar.DeletedDate.HasValue;
            if (!isMasterClassCalendarValid) return;

            var reqChangeCourseScheduleClassRoomIds = userprofile.Subscriptions
                .Where(it => it.ClassRoomId != body.ClassRoomId)
                .Where(it => !it.DeletedDate.HasValue)
                .Where(it => it.Role == UserProfile.AccountRole.Teacher)
                .Select(it => it.ClassRoomId);
            if (!reqChangeCourseScheduleClassRoomIds.Any()) return;

            var reqApplyScheduleClassCalendars = _classCalendarRepo.GetClassCalendarByClassRoomId(reqChangeCourseScheduleClassRoomIds)
                .Where(it => it != null)
                .Where(it => !it.CloseDate.HasValue)
                .Where(it => !it.DeletedDate.HasValue)
                .ToList();

            reqApplyScheduleClassCalendars.ForEach(it =>
            {
                it.BeginDate = masterClassCalendar.BeginDate;
                it.ShiftDays = masterClassCalendar.ShiftDays;
                it.Holidays = masterClassCalendar.Holidays;
                it.CalculateCourseSchedule();
            });

            reqApplyScheduleClassCalendars.ForEach(it => _classCalendarRepo.UpsertClassCalendar(it));
        }
 public void ApplyToAllCourse(ApplyToAllCourseRequest body)
 {
     // TODO: Not implemented 
     throw new NotImplementedException();
 }