} = false;                                             // 데이터 초기화
        #endregion

        #region 생성자
        public TabbedSchedulePage()
        {
            #region 변수 초기화
            view = "schedule";
            task = false;

            rainbowColors = new List <string>
            {
                "#FF0000",
                "#FF5E00",
                "#FFBB00",
                "#47C83E",
                "#0054FF",
                "#6B66FF",
                "#8041D9",
                "#D941C5",
                "#FF007F",
                "#CC723D"
            };

            instance = this;
            #endregion

            InitializeComponent();

            #region 현재 요일을 가져와 해당요일 시간표 보여주기
            var now = DateTime.Now;

            switch (now.DayOfWeek)
            {
            // 월요일
            case DayOfWeek.Monday:
                viewDOW = 1;
                break;

            // 화요일
            case DayOfWeek.Tuesday:
                viewDOW = 2;
                break;

            // 수요일
            case DayOfWeek.Wednesday:
                viewDOW = 3;
                break;

            // 목요일
            case DayOfWeek.Thursday:
                viewDOW = 4;
                break;

            // 금요일
            case DayOfWeek.Friday:
                viewDOW = 5;
                break;

            // 주말
            default:
                viewDOW = 6;
                break;
            }

            try
            {
                if (Int16.Parse(now.ToString("HH")) >= 18 && viewDOW < 6)
                {
                    viewDOW += 1;
                }
            }
            catch (Exception e)
            {
                _ = MainPage.GetInstance().ErrorAlert("시간 정수 변환", "시간을 정수형으로 변환하는 도중 오류가 발생했습니다.\n" + e.Message);
            }

            if (viewDOW == 6)
            {
                viewDOW = 1;
            }
            #endregion
        }
示例#2
0
        public async void InitUI()
        {
            try
            {
                string timetableJson = null;

                if (App.Class != 0)
                {
                    var timetableCtrl = new JsonController("timetable-" + App.GetClassName());
                    timetableJson = timetableCtrl.ReadString();
                }

                var lunchMenuCtrl = new JsonController("lunch_menu");
                var lunchMenuJson = lunchMenuCtrl.ReadString();

                var schoolScheduleCtrl = new JsonController("school_schedule");
                var schoolScheduleJson = schoolScheduleCtrl.ReadString();

                var schoolNoticeCtrl = new JsonController("school_notice");
                var schoolNoticeJson = schoolNoticeCtrl.ReadString();

                var schoolNewsletterCtrl = new JsonController("school_newsletter");
                var schoolNewsletterJson = schoolNewsletterCtrl.ReadString();

                var appNoticeCtrl = new JsonController("app_notice");
                var appNoticeJson = appNoticeCtrl.ReadString();

                #region 시간표 파일 읽기
                if (timetableJson != null)
                {
                    App.Timetable = JsonConvert.DeserializeObject <Timetable>(timetableJson);

                    TabbedSchedulePage.GetInstance().task = true;
                    _ = TabbedSchedulePage.GetInstance().ViewScheduleAnimation();
                }
                #endregion

                #region  식 메뉴 파일 읽기
                if (lunchMenuJson != null)
                {
                    App.LunchMenu = JsonConvert.DeserializeObject <LunchMenu>(lunchMenuJson);

                    TabbedSchedulePage.GetInstance().InitLunchMenu();
                }
                #endregion

                #region 학사 일정 파일 읽기
                if (schoolScheduleJson != null)
                {
                    App.SchoolSchedule = JsonConvert.DeserializeObject <Dictionary <string, SchoolSchedule> >(schoolScheduleJson);

                    TabbedSchedulePage.GetInstance().InitSchoolSchedule();
                }
                #endregion

                #region 학교 공지사항 파일 읽기
                if (schoolNoticeJson != null)
                {
                    App.SchoolNotice = JsonConvert.DeserializeObject <Dictionary <string, Dictionary <string, string> > >(schoolNoticeJson);

                    TabbedHomePage.GetInstance().InitSchoolNotice();
                }
                #endregion

                #region 가정통신문 파일 읽기
                if (schoolNewsletterJson != null)
                {
                    App.SchoolNewsletter = JsonConvert.DeserializeObject <Dictionary <string, Dictionary <string, string> > >(schoolNewsletterJson);

                    TabbedHomePage.GetInstance().InitSchoolNewsletter();
                }
                #endregion

                #region 앱 공지사항 파일 읽기
                if (appNoticeJson != null)
                {
                    App.AppNotice = JsonConvert.DeserializeObject <Dictionary <string, Dictionary <string, string> > >(appNoticeJson);

                    TabbedHomePage.GetInstance().InitAppNotice();
                }
                #endregion
            }
            catch (Exception e)
            {
                await ErrorAlert("UI 초기화", "UI를 초기화하는 도중 오류가 발생했습니다.\n" + e.Message);
            }
        }
示例#3
0
        public async Task GetData(bool refresh = false)
        {
            try
            {
                if (Connectivity.NetworkAccess == NetworkAccess.Internet)
                {
                    try
                    {
                        if (dataInfo != null && !refresh)
                        {
                            var serverDataInfo = GetDataInfo();

                            if (serverDataInfo != null)
                            {
                                serverDataInfo.Remove("SchoolNotice");
                                serverDataInfo.Remove("SchoolNewsletter");
                                serverDataInfo.Remove("AppNotice");
                                serverDataInfo.Add("SchoolNotice", dataInfo["SchoolNotice"]);
                                serverDataInfo.Add("SchoolNewsletter", dataInfo["SchoolNewsletter"]);
                                serverDataInfo.Add("AppNotice", dataInfo["AppNotice"]);

                                var timetableChange      = false;
                                var lunchMenuChange      = false;
                                var schoolScheduleChange = false;

                                if (App.Grade != 0 && dataInfo.ContainsKey("Timetable-" + App.GetClassName()) &&
                                    dataInfo["Timetable-" + App.GetClassName()].ContainsKey("Size") &&
                                    serverDataInfo.ContainsKey("Timetable-" + App.GetClassName()) &&
                                    serverDataInfo["Timetable-" + App.GetClassName()].ContainsKey("Size") &&
                                    dataInfo["Timetable-" + App.GetClassName()]["Size"] != serverDataInfo["Timetable-" + App.GetClassName()]["Size"])
                                {
                                    timetableChange = true;
                                }

                                if (dataInfo["LunchMenu"].ContainsKey("Size") && serverDataInfo["LunchMenu"].ContainsKey("Size") &&
                                    dataInfo["LunchMenu"]["Size"] != serverDataInfo["LunchMenu"]["Size"])
                                {
                                    lunchMenuChange = true;
                                }

                                if (dataInfo["SchoolSchedule"].ContainsKey("Size") && serverDataInfo["SchoolSchedule"].ContainsKey("Size") &&
                                    dataInfo["SchoolSchedule"]["Size"] != serverDataInfo["SchoolSchedule"]["Size"])
                                {
                                    schoolScheduleChange = true;
                                }

                                if (timetableChange || lunchMenuChange || schoolScheduleChange)
                                {
                                    var result = await DisplayAlert("최신 데이터 발견",
                                                                    "최신 데이터를 발견하였습니다.\n" +
                                                                    (timetableChange ? "\n- 시간표 : " + serverDataInfo["Timetable-" + App.GetClassName()]["Size"] : "") +
                                                                    (lunchMenuChange ? "\n- 급식 메뉴 : " + serverDataInfo["LunchMenu"]["Size"] : "") +
                                                                    (schoolScheduleChange ? "\n- 학사 일정 : " + serverDataInfo["SchoolSchedule"]["Size"] : ""), "다운로드", "취소");

                                    if (!result)
                                    {
                                        return;
                                    }

                                    var timetableT      = "";
                                    var lunchMenuT      = "";
                                    var schoolScheduleT = "";

                                    if (timetableChange)
                                    {
                                        timetableT = GetTimetable();
                                    }

                                    if (lunchMenuChange)
                                    {
                                        lunchMenuT = GetLunchMenu();
                                    }

                                    if (schoolScheduleChange)
                                    {
                                        schoolScheduleT = GetSchoolSchedule();
                                    }

                                    if (timetableT != "" || lunchMenuT != "" || schoolScheduleT != "")
                                    {
                                        // 파일로 저장
                                        var controller = new JsonController("data_info");
                                        dataInfo = serverDataInfo;
                                        await controller.Write(JObject.Parse(JsonConvert.SerializeObject(serverDataInfo)));
                                    }

                                    #region 시간표 초기화
                                    if (timetableT != "")
                                    {
                                        if (TabbedSchedulePage.GetInstance().view == "schedule")
                                        {
                                            TabbedSchedulePage.GetInstance().task = true;
                                            _ = TabbedSchedulePage.GetInstance().ViewScheduleAnimation();
                                        }

                                        // 파일로 저장
                                        var controller = new JsonController("timetable-" + App.GetClassName());
                                        await controller.Write(JObject.Parse(timetableT));
                                    }
                                    #endregion

                                    #region  식 메뉴 초기화
                                    if (lunchMenuT != "")
                                    {
                                        TabbedSchedulePage.GetInstance().InitLunchMenu();

                                        // 파일로 저장
                                        var controller = new JsonController("lunch_menu");
                                        await controller.Write(JObject.Parse(lunchMenuT));
                                    }
                                    #endregion

                                    #region 학사 일정 초기화
                                    if (schoolScheduleT != "")
                                    {
                                        TabbedSchedulePage.GetInstance().InitSchoolSchedule();

                                        // 파일로 저장
                                        var controller = new JsonController("school_schedule");
                                        await controller.Write(JObject.Parse(schoolScheduleT));
                                    }
                                    #endregion
                                }
                            }

                            return;
                        }

                        var dataInfoT      = GetDataInfo();
                        var timetable      = "";
                        var lunchMenu      = "";
                        var schoolSchedule = "";

                        if (refresh || App.Timetable == null)
                        {
                            timetable = GetTimetable();
                        }

                        if (refresh || App.LunchMenu == null)
                        {
                            lunchMenu = GetLunchMenu();
                        }

                        if (refresh || App.SchoolSchedule == null)
                        {
                            schoolSchedule = GetSchoolSchedule();
                        }

                        if (dataInfoT != null)
                        {
                            var controller = new JsonController("data_info");
                            await controller.Write(JObject.Parse(JsonConvert.SerializeObject(dataInfoT)));
                        }

                        if (timetable != "")
                        {
                            if (TabbedSchedulePage.GetInstance().view == "schedule")
                            {
                                // 시간표 초기화
                                TabbedSchedulePage.GetInstance().task = true;
                                _ = TabbedSchedulePage.GetInstance().ViewScheduleAnimation();
                            }

                            // 파일로 저장
                            var controller = new JsonController("timetable-" + App.GetClassName());
                            await controller.Write(JObject.Parse(timetable));
                        }

                        if (lunchMenu != "")
                        {
                            // 급식 메뉴 초기화
                            TabbedSchedulePage.GetInstance().InitLunchMenu();

                            // 파일로 저장
                            var controller = new JsonController("lunch_menu");
                            await controller.Write(JObject.Parse(lunchMenu));
                        }

                        if (schoolSchedule != "")
                        {
                            // 학사 일정 초기화
                            TabbedSchedulePage.GetInstance().InitSchoolSchedule();

                            // 파일로 저장
                            var controller = new JsonController("school_schedule");
                            await controller.Write(JObject.Parse(schoolSchedule));
                        }
                    }
                    catch (Exception e)
                    {
                        await ErrorAlert("데이터 가져오기", "데이터를 가져오는 도중 오류가 발생했습니다.\n" + e.Message);
                    }
                }
                else
                {
                    DependencyService.Get <IToastMessage>().Longtime("인터넷에 연결되어 있지 않아 최신 정보를 확인할 수 없습니다.");
                }
            }
            catch (Exception e)
            {
                await ErrorAlert("데이터 가져오기 (인터넷 상태)", "데이터를 가져오는 도중 오류가 발생했습니다.\n" + e.Message);
            }
            TabbedSchedulePage.GetInstance().task = false;
        }
示例#4
0
        private async void GoSetting_Tapped(object sender, EventArgs e)
        {
            if (!myInfoSet && !task)
            {
                task = true;

                var popup = new ProfileSettingPopup();

                popup.OnPopupSaved += async(s, arg) =>
                {
                    if (arg.Result)
                    {
                        var controller = new JsonController("setting");
                        var read       = controller.Read();

                        if (read != null)
                        {
                            try
                            {
                                var dict = new Dictionary <string, object>
                                {
                                    { "Grade", arg.Grade },
                                    { "Class", arg.Class },
                                    { "Number", arg.Number },
                                    { "Name", arg.Name },
                                    { "BirthMonth", arg.BirthMonth },
                                    { "BirthDay", arg.BirthDay }
                                };
                                controller.Add(dict);
                            }
                            catch (Exception ex)
                            {
                                await MainPage.GetInstance().ErrorAlert("설정", "설정을 완료하는 도중 오류가 발생했습니다.\n" + ex.Message);
                            }
                        }
                        else
                        {
                            var jsonObj = new JObject(
                                new JProperty("Grade", arg.Grade),
                                new JProperty("Class", arg.Class),
                                new JProperty("Number", arg.Number),
                                new JProperty("Name", arg.Name),
                                new JProperty("BirthMonth", arg.BirthMonth),
                                new JProperty("BirthDay", arg.BirthDay));
                            await controller.Write(jsonObj);
                        }

                        App.Grade      = arg.Grade;
                        App.Class      = arg.Class;
                        App.Number     = arg.Number;
                        App.Name       = arg.Name;
                        App.BirthMonth = arg.BirthMonth;
                        App.BirthDay   = arg.BirthDay;

                        MyInfoUpdate();
                        MainPage.GetInstance().GetTimetable();
                        _ = TabbedSchedulePage.GetInstance().ViewScheduleAnimation();

                        DependencyService.Get <IToastMessage>().Longtime("입력된 정보가 저장되었습니다.");
                    }
                };

                await PopupNavigation.Instance.PushAsync(popup, App.Animation);

                task = false;
            }
        }