public IHttpActionResult Post(WeekTablePostRequest requestData)
        {
            var requestService  = new Service.Utility.RequestDataHelper <WeekTablePostRequest>();
            var checkColumnKeys = new string[3] {
                "token", "circlekey", "weektabledata"
            };
            var checkEmpty = requestService.CheckColumnEmpty(requestData, checkColumnKeys);
            var response   = new Infrastructure.ViewModel.Base.BaseResponse <string>();

            response.Success = false;
            if (checkEmpty == false)
            {
                response.Message = "遺漏參數";
                response.State   = Infrastructure.ViewModel.Base.LogState.RequestDataError;
                return(Content(HttpStatusCode.BadRequest, response));
            }
            var weekTableService = new WeekTableService();
            var responseData     = weekTableService.WeekTableDataProxy(requestData);

            if (responseData)
            {
                response.Success = true;
                response.Message = "處理成功";
                return(Ok(response));
            }
            response.Message = "處理失敗";
            response.State   = Infrastructure.ViewModel.Base.LogState.Error;

            return(Ok(response));
        }
        /// <summary>
        /// 取得課程詳細資訊 - 新的雲端版web專用
        /// </summary>
        /// <param name="circleKey"></param>
        /// <returns></returns>
        public Infrastructure.ViewModel.Backend.LearningCircleGetResponse GetLearningCircleInfo(string circleKey)
        {
            var db = _uow.DbContext;
            var leanringCircleInfo = GetDetailByOuterKey(circleKey.ToLower());

            if (leanringCircleInfo == null)
            {
                return(null);
            }
            var responseData = new Infrastructure.ViewModel.Backend.LearningCircleGetResponse()
            {
                CircleKey   = circleKey,
                Description = leanringCircleInfo.Description,
                Name        = leanringCircleInfo.Name,
                EndDate     = leanringCircleInfo.EndDate.Value.ToLocalTime(),
                StartDate   = leanringCircleInfo.StartDate.Value.ToLocalTime(),
                Objective   = leanringCircleInfo.Objective,
                Remark      = leanringCircleInfo.ReMark,
                DomainId    = leanringCircleInfo.ModuleName,
                DomainName  = leanringCircleInfo.ModuleName
            };
            var memberService = new MemberService();
            //處理老師名單
            var teachers = memberService.GetTeacherList(circleKey.ToLower());

            if (teachers.FirstOrDefault() != null)
            {
                var teachersName = teachers.Select(t => t.Name).ToList();
                responseData.Teachers = new List <string>();
                foreach (var teacher in teachersName)
                {
                    responseData.Teachers.Add(teacher);
                }
            }

            var weekTableService    = new WeekTableService();
            var ClassWeekTableDatas = weekTableService.GetByCirclekey(circleKey);

            if (ClassWeekTableDatas.WeekTable.FirstOrDefault() != null)
            {
                responseData.WeekTable = new List <Infrastructure.ViewModel.CourseManage.GetAllMyCourseWeekTable>();
                foreach (var weekTableData in ClassWeekTableDatas.WeekTable)
                {
                    var data = new Infrastructure.ViewModel.CourseManage.GetAllMyCourseWeekTable()
                    {
                        Week        = weekTableData.Week,
                        Place       = weekTableData.Place,
                        StartPeriod = weekTableData.StartPeriod.Value,
                        EndPeriod   = weekTableData.EndPeriod.Value,
                        StartTime   = string.Format("{0:HH}:{0:mm}", weekTableData.StartTime.ToLocalTime()),
                        EndTime     = string.Format("{0:HH}:{0:mm}", weekTableData.EndTime.ToLocalTime())
                    };
                    responseData.WeekTable.Add(data);
                }
            }
            return(responseData);
        }
Example #3
0
        public IHttpActionResult Post(LearningCirclePostRequest requestData)
        {
            var result          = new Infrastructure.ViewModel.Base.BaseResponse <Infrastructure.Entity.LearningCircle>();
            var requestService  = new Service.Utility.RequestDataHelper <LearningCirclePostRequest>();
            var checkColumnKeys = new string[7] {
                "name", "description", "token", "startdate", "enddate", "weeks", "place"
            };
            var checkEmpty = requestService.CheckColumnEmpty(requestData, checkColumnKeys);

            if (checkEmpty == false)
            {
                result.Success = false;
                result.Message = "確認是否遺漏資訊";
                return(Content(HttpStatusCode.BadRequest, result));
            }
            var service = new LearningCircleService();
            var data    = service.CreateLearningCircle(requestData.Name,
                                                       requestData.CircleKey,
                                                       requestData.Description,
                                                       requestData.Token,
                                                       requestData.StartDate.Value,
                                                       requestData.EndDate.Value,
                                                       requestData.OrgId
                                                       );

            if (data == null)
            {
                result.Success = false;
                result.Message = "新增失敗";
                result.State   = Infrastructure.ViewModel.Base.LogState.Error;
                return(Ok(result));
            }
            result.Success = true;
            var learningRoleService = new LearningRoleService();
            var authService         = new AuthService();
            //建立老師角色身分
            var teacherRole = learningRoleService.AddLearningEditRole(data.CreateUser.Value, data.Id, "老師", true, false, 1);
            //建立助教角色身分
            var surpportTeacherRole = learningRoleService.AddLearningEditRole(data.CreateUser.Value, data.Id, "助教", true, false, 2);
            //建立學生角色身分
            var studentRole = learningRoleService.AddLearningEditRole(data.CreateUser.Value, data.Id, "學生", false);
            //建立學習圈內角色權限
            var insertAuthSuccess = authService.InsertLearningCircleAllRoleAuth(data.Id, data.CreateUser.Value);

            var weekService      = new WeekTableService();
            var weekDatas        = weekService.CreateWeekDatas(requestData.Token, data.LearningOuterKey, 0, requestData.Place, requestData.StartDate.Value, requestData.EndDate.Value, requestData.Weeks);
            var timeTableService = new TimeTableService();

            var timeTableDatas = requestData.ClassWeekType > 0 ? timeTableService.CreateByCircleKey(data.LearningOuterKey, requestData.ClassWeekType) : timeTableService.CreateByCircleKey(data.LearningOuterKey);

            result.Message = "新增成功";
            result.Data    = data;
            return(Ok(result));
        }
        public IHttpActionResult Get(string strAccess)
        {
            var requestService = new Service.Utility.RequestDataHelper <Infrastructure.ViewModel.Base.BackendBaseRequest>();
            var requestData    = JsonConvert.DeserializeObject <Infrastructure.ViewModel.Base.BackendBaseRequest>(strAccess);

            var checkColumnKey = new string[1] {
                "token"
            };
            var checkEmpty = requestService.CheckColumnEmpty(requestData, checkColumnKey);
            var response   = new Infrastructure.ViewModel.Base.BaseResponse <WeekTableViewModel>();

            response.Success = false;
            response.Data    = new WeekTableViewModel();
            if (checkEmpty == false)
            {
                response.Message = "遺漏參數";
                response.State   = Infrastructure.ViewModel.Base.LogState.RequestDataError;
                return(Content(HttpStatusCode.BadRequest, response));
            }
            var tokenService = new TokenService();
            var checkToken   = tokenService.GetTokenInfo(requestData.Token).Result;

            if (checkToken == null)
            {
                response.Message = "已登出";
                response.State   = Infrastructure.ViewModel.Base.LogState.Logout;
                return(Ok(response));
            }
            var weektableService = new WeekTableService();
            var responseData     = (requestData.CircleKey == null || requestData.CircleKey == string.Empty) ?
                                   weektableService.GetByToken(requestData.Token) :
                                   weektableService.GetByCirclekey(requestData.CircleKey.ToLower());

            if (responseData == null)
            {
                response.Message = "目前無課表資訊";
                response.State   = Infrastructure.ViewModel.Base.LogState.DataNotModified;
                return(Ok(response));
            }
            response.Success = true;
            response.Message = "查詢成功";
            response.Data    = responseData;
            return(Ok(response));
        }
        /// <summary>
        /// 取得APP的GetAllMyCourse的資訊
        /// </summary>
        /// <param name="token"></param>
        /// <returns></returns>
        public IEnumerable <Infrastructure.ViewModel.CourseManage.GetAllMyCourseResponse> APPGetAllMyCourse(string token)
        {
            var memberService = new MemberService();
            var checkToken    = memberService.TokenToMember(token).Result;

            if (checkToken == null)
            {
                return(null);
            }

            var sectionService = new SectionService();
            var sectionData    = sectionService.GetOrgNowSeme(checkToken.OrgId);


            var learningCircleList = GetLearningCircleListByToken(token, null, null);

            if (learningCircleList == null || learningCircleList.Count() <= 0)
            {
                return(new List <Infrastructure.ViewModel.CourseManage.GetAllMyCourseResponse>());
            }
            var response    = new List <Infrastructure.ViewModel.CourseManage.GetAllMyCourseResponse>();
            var sectionYear = learningCircleList.Where(t => t.StartDate.HasValue).GroupBy(t => t.StartDate.Value.Year);

            //上過多少學年度
            foreach (var year in sectionYear)
            {
                var data       = new Infrastructure.ViewModel.CourseManage.GetAllMyCourseResponse();
                var courseData = new List <Infrastructure.ViewModel.CourseManage.DataCourseDataModel>();
                data.Year     = year.Key;
                data.YearSeme = year.Key.ToString();
                if (year.Key == sectionData.Year)
                {
                    data.IsNowSeme = true;
                }
                //查詢課程
                foreach (var learningcircle in learningCircleList.Where(t => t.StartDate.HasValue && ((t.StartDate >= sectionData.StartDate && t.StartDate <= sectionData.EndDate) || (t.EndDate >= sectionData.StartDate && t.EndDate <= sectionData.EndDate))))
                {
                    var learningCircleData = new Infrastructure.ViewModel.CourseManage.DataCourseDataModel();

                    learningCircleData.ClassId          = learningcircle.LearningOuterKey.ToLower();
                    learningCircleData.ClassName        = learningcircle.Name;
                    learningCircleData.ClassSubjectName = learningcircle.Name;
                    //查詢課程老師們
                    var teachers        = memberService.GetTeacherList(learningcircle.LearningOuterKey);
                    var teacherListData = new List <Infrastructure.ViewModel.MemberManage.TeacherPhotoInfo>();
                    var teacherNames    = string.Empty;
                    //設定上課老師們資料
                    foreach (var teacher in teachers)
                    {
                        var teacherData = new Infrastructure.ViewModel.MemberManage.TeacherPhotoInfo();
                        teacherData.Email   = teacher.Email;
                        teacherData.ManName = teacher.Name;
                        teacherData.Url     = teacher.Photo;
                        teacherListData.Add(teacherData);
                        teacherNames += teacher.Name + ",";
                    }
                    teacherNames = teacherNames != string.Empty ? teacherNames.Substring(0, teacherNames.Length - 1) : teacherNames;
                    learningCircleData.TeacherPhoto = teacherListData.ToArray();
                    learningCircleData.ClassTeacher = teacherNames;
                    learningCircleData.StartDate    = learningcircle.StartDate.HasValue ? learningcircle.StartDate.Value.ToLocalTime() : DateTime.MinValue;
                    learningCircleData.EndDate      = learningcircle.EndDate.HasValue ? learningcircle.EndDate.Value.ToLocalTime() : DateTime.MinValue;
                    var memberCount = memberService.GetLearningCircleMembers(learningcircle.LearningOuterKey).Count();
                    learningCircleData.MemberCount = memberCount;
                    var weekTableService = new WeekTableService();
                    var weekDatas        = weekTableService.GetAllMyCourseWeekTableData(learningcircle.Id);
                    if (weekDatas != null)
                    {
                        learningCircleData.WeekTable = weekDatas.ToList();
                    }
                    courseData.Add(learningCircleData);
                }
                data.Course = courseData.ToArray();
                response.Add(data);
            }
            return(response);
        }
        /// <summary>
        /// 取得APP的GetCourseDetail的資訊
        /// </summary>
        /// <param name="token"></param>
        /// <returns></returns>
        public Infrastructure.ViewModel.CourseManage.GetCourseDetailResponse APPGetCourseDetail(string token, string circleKey)
        {
            var response      = new Infrastructure.ViewModel.CourseManage.GetCourseDetailResponse();
            var memberService = new MemberService();
            var tokenService  = new TokenService();
            var checkToken    = tokenService.GetTokenInfo(token);

            if (checkToken == null)
            {
                return(response);
            }

            var members = memberService.GetLearningCircleMembers(circleKey);

            if (members == null)
            {
                return(response);
            }

            response.MemberCount    = members.Count();
            response.Edit           = false;
            response.EditImpression = false;
            response.CollInfo       = null;

            var learningCircleInfo = GetDetailByOuterKey(circleKey);

            if (learningCircleInfo == null)
            {
                return(response);
            }

            //處理老師名單
            var teachers = memberService.GetTeacherList(circleKey);

            if (teachers.FirstOrDefault() != null)
            {
                var teachersName = teachers.Select(t => t.Name).ToList();
                foreach (var teacher in teachersName)
                {
                    response.ClassTeachers += teacher + "、";
                }
                response.ClassTeachers = response.ClassTeachers.Substring(0, response.ClassTeachers.Length - 1);
            }
            if (learningCircleInfo.StartDate.HasValue && learningCircleInfo.EndDate.HasValue)
            {
                response.ClassPeriod = string.Format("{0} ~ {1}", learningCircleInfo.StartDate.Value.ToLocalTime().ToString("yyyy/MM/dd"), learningCircleInfo.EndDate.Value.ToLocalTime().ToString("yyyy/MM/dd"));
                response.StartDate   = learningCircleInfo.StartDate.Value.ToLocalTime();
                response.EndDate     = learningCircleInfo.EndDate.Value.ToLocalTime();
            }

            var weekTableService    = new WeekTableService();
            var ClassWeekTableDatas = weekTableService.GetByCirclekey(circleKey);

            response.WeekTable = new List <Infrastructure.ViewModel.CourseManage.GetAllMyCourseWeekTable>();
            if (ClassWeekTableDatas.WeekTable.FirstOrDefault() != null)
            {
                foreach (var weekTableData in ClassWeekTableDatas.WeekTable)
                {
                    var data = new Infrastructure.ViewModel.CourseManage.GetAllMyCourseWeekTable()
                    {
                        Week        = weekTableData.Week,
                        Place       = weekTableData.Place,
                        StartPeriod = weekTableData.StartPeriod.Value,
                        EndPeriod   = weekTableData.EndPeriod.Value,
                        StartTime   = string.Format("{0:HH}:{0:mm}", weekTableData.StartTime.ToLocalTime()),
                        EndTime     = string.Format("{0:HH}:{0:mm}", weekTableData.EndTime.ToLocalTime())
                    };
                    response.WeekTable.Add(data);
                }
            }

            response.ClassSubjectName = learningCircleInfo.Name;
            response.ClassId          = learningCircleInfo.LearningOuterKey;
            response.Introduction     = learningCircleInfo.Description;
            response.ClassName        = learningCircleInfo.Name;
            response.ClassDomainId    = null;
            response.ClassDomainName  = null;
            response.Note             = learningCircleInfo.ReMark;
            response.ClassTarget      = learningCircleInfo.Objective;
            return(response);
        }
        /// <summary>
        /// 取得管理者學習圈列表資訊
        /// </summary>
        /// <param name="memberId"></param>
        /// <param name="searchString"></param>
        /// <param name="deptId"></param>
        /// <returns></returns>
        public IEnumerable <Infrastructure.ViewModel.Backend.LearningCircleManageViewModel> GetLearningCircleManageList(int memberId, string searchString, int orgId, int?deptId = null)
        {
            var db = _uow.DbContext;

            //是否為素人
            var checkIsAmateur = (from o in db.Organizations
                                  join m in db.Members on o.Id equals m.OrgId
                                  where o.OrgCode == "amateur" && m.Id == memberId && m.RoleName == "2"
                                  select m).FirstOrDefault();


            var query = (checkIsAmateur != null)
                ?  //是素人老師
                        (from lc in db.LearningCircle
                         where lc.CreateUser == memberId && lc.Enable == true && lc.Visibility == true

                         select new Infrastructure.ViewModel.Backend.LearningCircleManageViewModel
            {
                Description = lc.Description,
                EndDate = lc.EndDate.Value,
                Enable = lc.Enable.ToString(),
                LearningOuterKey = lc.LearningOuterKey,
                Name = lc.Name,
                OrgId = lc.OrgId.Value.ToString(),
                Section = lc.Section.ToString(),
                StartDate = lc.StartDate.Value
            }).ToList()
                  : //是有學校組織 或 系統管理者
                    //有查詢學院條件
                        (deptId.HasValue)
                              ? ((from lc in db.LearningCircle
                                  join o in db.Organizations on lc.OrgId equals o.Id
                                  join c in db.Courses on lc.CourseId equals c.Id
                                  where //是否為某個學院的編號
                                  c.DeptId == deptId.Value && lc.Enable == true && lc.Visibility == true && lc.OrgId == orgId
                                  select new Infrastructure.ViewModel.Backend.LearningCircleManageViewModel
            {
                Description = lc.Description,
                EndDate = lc.EndDate.Value,
                Enable = lc.Enable.ToString(),
                LearningOuterKey = lc.LearningOuterKey,
                Name = lc.Name,
                OrgId = lc.OrgId.Value.ToString(),
                Section = lc.Section.ToString(),
                StartDate = lc.StartDate.Value
            }).ToList())
                        //沒有查詢學院條件
                              : ((from lc in db.LearningCircle
                        //      join c in db.Courses on lc.CourseId equals c.Id
                        //      join d in db.Depts on c.DeptId equals d.Id
                                  join o in db.Organizations on lc.OrgId equals o.Id
                                  join m in db.Members on o.Id equals m.OrgId
                                  where m.Id == memberId && lc.Enable == true && lc.Visibility == true && lc.OrgId == orgId
                                  select new Infrastructure.ViewModel.Backend.LearningCircleManageViewModel
            {
                Description = lc.Description,
                EndDate = lc.EndDate.Value,
                Enable = lc.Enable.ToString(),
                LearningOuterKey = lc.LearningOuterKey,
                Name = lc.Name,
                OrgId = lc.OrgId.Value.ToString(),
                Section = lc.Section.ToString(),
                StartDate = lc.StartDate.Value
            }).ToList());

            var weekTableService = new WeekTableService();

            //重新塞weeks資料
            foreach (var learningCircleData in query)
            {
                learningCircleData.StartDate = learningCircleData.StartDate.ToLocalTime();
                learningCircleData.EndDate   = learningCircleData.EndDate.ToLocalTime();
                var weekDatas = weekTableService.GetByCirclekey(learningCircleData.LearningOuterKey);
                if (weekDatas != null && weekDatas.WeekTable.FirstOrDefault() != null)
                {
                    learningCircleData.Place = weekDatas.WeekTable.FirstOrDefault().Place;
                    learningCircleData.Weeks = weekDatas.WeekTable.Select(t => (int)t.StartTime.DayOfWeek).ToList();
                }
            }
            return((searchString != string.Empty && searchString != null) ? query.Where(t => t.Name.Contains(searchString) || t.LearningOuterKey.Contains(searchString)).OrderBy(t => t.StartDate).ToList() : query.OrderBy(t => t.StartDate).ToList());
        }
Example #8
0
        /// <summary>
        /// 處理timeTable資料
        /// </summary>
        /// <param name="startDate"></param>
        /// <param name="endDate"></param>
        /// <param name="circleKey"></param>
        /// <param name="classWeekType"></param>
        /// <param name="weekTables"></param>
        /// <returns></returns>
        public List <TimeTable> Getdata(DateTime startDate, DateTime endDate, string circleKey, int?classWeekType = 0, List <WeekTable> weekTables = null)
        {
            var responseData = new List <Infrastructure.Entity.TimeTable>();
            var startWeekDay = (int)startDate.DayOfWeek;
            //間隔週數
            var weekCount = Math.Ceiling(((Double)(endDate - startDate).Days + 1) / (Double)7);

            //查詢傳統周課表
            if (circleKey != null && circleKey != string.Empty) //要取得傳統課表資料
            {
                var weekTableService = new WeekTableService();
                if (weekTables == null)
                {
                    weekTables = weekTableService.GetByCirclekey(circleKey).WeekTable.OrderBy(t => t.StartTime).ToList(); //遞增排序
                }
                if (weekTables == null)
                {
                    return(null);
                }
                var learningCircleService = new LearningCircleService();
                var learningCircleInfo    = learningCircleService.GetDetailByOuterKey(circleKey);

                if (learningCircleInfo == null)
                {
                    return(null);
                }
                var dayOfWeekTools = new DayOfWeekTools();
                var weeks          = weekTables.Select(t => dayOfWeekTools.ChangeToDayOfWeek(t.Week).Value).OrderBy(t => t);
                if (weeks == null)
                {
                    return(null);
                }
                var weeksMaxValue = Convert.ToInt32(weeks.Max(t => t)); //取出周次陣列中最大的數字
                var weeksMinValue = Convert.ToInt32(weeks.Min(t => t)); //取出周次陣列中最小的數字
                if (weeksMaxValue >= 7)                                 //周次大於等於7不合邏輯,直接跳null
                {
                    return(null);
                }

                var _startDate = startDate.Date;
                var _endDate   = startDate.Date;
                if (classWeekType.Value == 0)
                {
                    //每周
                    for (var week = 0; week <= weekCount; week++)
                    {
                        #region 設定第一周日期區間
                        if (week == 0)
                        {
                            var getTimeSpan = weekTables.Where(t => (int)dayOfWeekTools.ChangeToDayOfWeek(t.Week) == (int)_startDate.DayOfWeek).ToList();
                            responseData.AddRange(SwitchWeekTableToTimeTable(getTimeSpan, learningCircleInfo.LearningOuterKey.ToLower(), _startDate, _endDate));

                            foreach (var weekDay in weeks)
                            {
                                var checkWeek = (int)weekDay - (int)_startDate.DayOfWeek;
                                if (checkWeek > 0)
                                {
                                    _startDate  = _startDate.AddDays(checkWeek);
                                    _endDate    = _endDate.AddDays(checkWeek);
                                    getTimeSpan = weekTables.Where(t => (int)dayOfWeekTools.ChangeToDayOfWeek(t.Week) == (int)_startDate.DayOfWeek).ToList();
                                    responseData.AddRange(SwitchWeekTableToTimeTable(getTimeSpan, learningCircleInfo.LearningOuterKey.ToLower(), _startDate, _endDate));
                                }
                            }
                        }
                        #endregion
                        #region 設定第二周到最終週日期區間
                        else
                        {
                            //第二周開始
                            //設定起始日期

                            foreach (var weekDay in weeks.GroupBy(t => t))
                            {
                                var checkWeek = (int)weekDay.Key - (int)_startDate.DayOfWeek;
                                if (checkWeek < 0)
                                {
                                    _endDate   = _endDate.AddDays((7 + checkWeek));
                                    _startDate = _startDate.AddDays((7 + checkWeek));
                                }
                                else if (checkWeek == 0)
                                {
                                    _endDate   = _endDate.AddDays(7);
                                    _startDate = _startDate.AddDays(7);
                                }
                                else
                                {
                                    _endDate   = _endDate.AddDays(checkWeek);
                                    _startDate = _startDate.AddDays(checkWeek);
                                }
                                if (_startDate.Date <= endDate.Date)
                                {
                                    var getTimeSpan = weekTables.Where(t => (int)dayOfWeekTools.ChangeToDayOfWeek(t.Week) == (int)_startDate.DayOfWeek).ToList();
                                    responseData.AddRange(SwitchWeekTableToTimeTable(getTimeSpan, learningCircleInfo.LearningOuterKey.ToLower(), _startDate, _endDate));
                                }
                            }
                        }
                        #endregion
                    }
                }
                //隔週
                else if (classWeekType.Value == 2)
                {
                    for (var week = 0; week <= weekCount; week += 2)
                    {
                        #region 設定第一周日期區間
                        if (week == 0)
                        {
                            var getTimeSpan = weekTables.Where(t => (int)dayOfWeekTools.ChangeToDayOfWeek(t.Week) == (int)_startDate.DayOfWeek).ToList();
                            responseData.AddRange(SwitchWeekTableToTimeTable(getTimeSpan, learningCircleInfo.LearningOuterKey.ToLower(), _startDate, _endDate));

                            foreach (var weekDay in weeks)
                            {
                                var checkWeek = (int)weekDay - (int)_startDate.DayOfWeek;
                                if (checkWeek > 0)
                                {
                                    _startDate  = _startDate.AddDays(checkWeek);
                                    _endDate    = _endDate.AddDays(checkWeek);
                                    getTimeSpan = weekTables.Where(t => (int)dayOfWeekTools.ChangeToDayOfWeek(t.Week) == (int)_startDate.DayOfWeek).ToList();
                                    responseData.AddRange(SwitchWeekTableToTimeTable(getTimeSpan, learningCircleInfo.LearningOuterKey.ToLower(), _startDate, _endDate));
                                }
                            }
                        }
                        #endregion
                        #region 設定第二周到最終週日期區間
                        else
                        {
                            //第二周開始
                            //設定起始日期

                            foreach (var weekDay in weeks.GroupBy(t => t))
                            {
                                var checkWeek = (int)weekDay.Key - (int)_startDate.DayOfWeek;
                                if (checkWeek < 0)
                                {
                                    _endDate   = _endDate.AddDays((14 + checkWeek));
                                    _startDate = _startDate.AddDays((14 + checkWeek));
                                }
                                else if (checkWeek == 0)
                                {
                                    _endDate   = _endDate.AddDays(14);
                                    _startDate = _startDate.AddDays(14);
                                }
                                else
                                {
                                    _endDate   = _endDate.AddDays(checkWeek);
                                    _startDate = _startDate.AddDays(checkWeek);
                                }
                                if (_startDate.Date <= endDate.Date)
                                {
                                    var getTimeSpan = weekTables.Where(t => (int)dayOfWeekTools.ChangeToDayOfWeek(t.Week) == (int)_startDate.DayOfWeek).ToList();
                                    responseData.AddRange(SwitchWeekTableToTimeTable(getTimeSpan, learningCircleInfo.LearningOuterKey.ToLower(), _startDate, _endDate));
                                }
                            }
                        }
                        #endregion
                    }
                }
                else
                {
                    var getTimeSpan = weekTables.Where(t => (int)dayOfWeekTools.ChangeToDayOfWeek(t.Week) == (int)_startDate.DayOfWeek).ToList();
                    responseData.AddRange(SwitchWeekTableToTimeTable(getTimeSpan, learningCircleInfo.LearningOuterKey.ToLower(), _startDate, _endDate));
                }
            }
            return(responseData);
        }