} = 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 }
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); } }
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; }
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; } }