public void ModifySchedule(string CourseName) { PrintSchedule(CourseName); Prompt._Prompt("輸入格式:加入or刪除(I or D) 星期幾(1-7) 第幾節課(1-10)"); Prompt._Prompt("註:第5節為中午12:00"); Prompt._Prompt("註:格式錯誤將自動退出設定"); while (true) { string input = Prompt.Input("請輸入:"); Match mh = Regex.Match(input, "([ID]) ([1-7]) ([0-9]{1,2})"); if (mh.Success) { int week = int.Parse(mh.Groups[2].Value); int courseTime = int.Parse(mh.Groups[3].Value); string mode = mh.Groups[1].Value; if (mode == "I") { schedule[week - 1, courseTime - 1] = CourseName; Prompt.Success($"{CourseName}上課時間 => 星期{_week[week - 1]} 第{courseTime}節({courseTime + 7}:00~{courseTime + 8}:00)"); } else if (mode == "D") { schedule[week - 1, courseTime - 1] = ""; Prompt.Success($"刪除 {CourseName}的星期{_week[week - 1]} 第{courseTime}節({courseTime + 7}:00~{courseTime + 8}:00)"); } } else { Prompt.Error("格式錯誤 退出設定!"); break; } } }
public void ModifyLocation(string CourseName) { while (true) { Prompt._Prompt("輸入格式:經度,緯度"); string input = Prompt.Input("請輸入:"); Match mh = Regex.Match(input, "[0-9]+.[0-9]*,[0-9]+.[0-9]*"); if (mh.Success) { Location[CourseName] = mh.Groups[0].Value; Prompt.Success($"{CourseName}定位地點 => {input}"); break; } else { Prompt.Error(Prompt.FormatError); } } }
static void Main(string[] args) { Console.OutputEncoding = Encoding.UTF8; Console.Title = "Zuvio 自動點名系統 Ver1.3 by.Wind"; Zuvio zuvio = new Zuvio(); List <Course> courses = zuvio.GetCourses(); string select = string.Empty; while (true) { Prompt._Prompt("輸入格式:編號"); Prompt._Prompt("0.開啟自動簽到"); Prompt._Prompt($"1.設定檢查時間(Current DelayTime:{zuvio.DelayTime}s)"); Prompt._Prompt("↓↓以下為設定課程時間↓↓"); Prompt._Prompt("輸入格式:編號 設定時間orGPS定位地點(T or G)"); int num = 1; courses.ForEach(x => { num++; Prompt._Prompt($"{num}.{x.course_name}"); }); select = Prompt.Input("請輸入:"); Console.ForegroundColor = ConsoleColor.White; Prompt.SplitLine(); if (select == "0") { break; } else if (select == "1") { while (!int.TryParse(Prompt.Input("請輸入檢查時間(單位:秒):"), out zuvio.DelayTime)) { Prompt.Error(Prompt.FormatError); } } else { Match mh = Regex.Match(select, "([0-9]) ([TG])", RegexOptions.IgnoreCase); if (mh.Success) { string mode = mh.Groups[2].Value.ToUpper(); string courseName = courses[int.Parse(mh.Groups[1].Value) - 2].course_name; if (mode == "T") { zuvio.ModifySchedule(courseName); } else if (mode == "G") { zuvio.ModifyLocation(courseName); } } else { Prompt.Error(Prompt.FormatError); } } Console.ForegroundColor = ConsoleColor.White; Prompt.SplitLine(); } File.WriteAllText("Setting.json", JsonConvert.SerializeObject(zuvio)); Prompt.DateTimeOutput("Zuvio 自動點名啟動"); Prompt.DateTimeOutput("按下任意鍵結束程式"); zuvio.Start(courses); Console.Read(); zuvio.Stop(); }