//write_reserve에 방번호 타임번호도 전송해줘야한다. static void Main(string[] args) { string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\logint.config"; int date; int gid = 0; int rid = 0; //Console.WriteLine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)); Console.Title = "TU도서관 스터디룸 예약편리 Madeby:Miew_ONE"; //Console.WriteLine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"\\logint.config"); //Console.ReadKey(); if (!File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\logint.config")) { Console.WriteLine("로그인 정보 file 생성합니다.\n종료후 다시 시작 해주세요 -확인"); Console.ReadKey(); File.Create(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\logint.config"); return; } string[] tms = File.ReadAllLines(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\logint.config"); if (tms.Length == 0) { Console.WriteLine("========수정이 필요할시\n" + path); Console.WriteLine("========를 확인해주세요"); Console.WriteLine("입력된 로그인 정보가 없습니다."); string[] login_info = new string[10]; Console.WriteLine("로그인 정보 입력입니다"); Console.WriteLine("아이디를 입력하세요"); login_info[0] = Console.ReadLine(); Console.WriteLine("비밀번호를 입력하세요"); login_info[1] = Console.ReadLine(); Console.WriteLine("핸드폰 번호를 입력하세요"); login_info[2] = Console.ReadLine(); Console.WriteLine("이메일을 입력하세요"); login_info[3] = Console.ReadLine(); using (StreamWriter str = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\logint.config")) { str.WriteLine("id:" + login_info[0]); str.WriteLine("password:"******"user_mobile:" + login_info[2]); str.Write("user_email:" + login_info[3]); str.WriteLine(";"); str.Close(); } } //name = "박원균", // user_id = "0015110068", // room_id = "61", // time_id = "191", // reserve_date = "20191023", // time_value = time,//20 %3A 00 %7E 21 %3A 00 // user_mobile = "01028564723", // user_email = "*****@*****.**"; loginCoockie login = new loginCoockie(); Que_reserve que = new Que_reserve(); WebR webR = new WebR(); Search search = new Search(); CookieContainer ck = login.login_Stat(); //C:\Users\sec if (ck == null) { Console.WriteLine("===============허가받지 않은 사용자입니다==============="); File.Delete(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\logint.config"); Console.WriteLine("아무 버튼을 눌러 종료해주세요"); Console.ReadKey(); return; } while (true) { Console.Clear(); int check = 0; Console.WriteLine("무슨 작업을 할것인가?"); Console.WriteLine("1.연속 예약"); Console.WriteLine("2.개별 예약"); Console.WriteLine("3.취소"); Console.WriteLine("4.다시 시작"); string tmp = Console.ReadLine(); if (tmp == "1" || tmp == "2" || tmp == "3" || tmp == "4") { check = Convert.ToInt32(tmp); } else { Console.WriteLine("잘못 입력하셨습니다."); return; } Console.Clear(); Console.WriteLine("인식하지 못하는 형식을 입력하면 다시 시작합니다"); switch (check) { case 1: int[] check_box = new int[3]; int[] info = { 0, 0, 0 }; check_box[0] = 0; check_box[1] = 0; check_box[2] = 0; info = setdate(); date = info[0]; gid = info[1]; rid = info[2]; if (search.hi(ck, gid, rid, date)) { Console.WriteLine("=====================0를 입력하시면 다시시작합니다.\t 1은 종료"); Console.WriteLine("=====================체크 박스를 선택하십시오 연속 3개의 시간이 지정됩니다."); Console.WriteLine("=====================ex)checkbox: ??? 중 ???를 선택하세요"); check_box[0] = Convert.ToInt32(Console.ReadLine()); if (check_box[0] == 0) { continue; } else if (check_box[0] == 1) { return; } else if (check_box[0] > 100 && check_box[0] < 300) { webR.WebRe(ck, gid, rid, date, check_box); Console.Clear(); search.hi(ck, gid, rid, date); } } break; case 2: int[] check_boxs = new int[3]; int[] infos = { 0, 0, 0 }; infos = setdate(); date = infos[0]; gid = infos[1]; rid = infos[2]; if (search.hi(ck, gid, rid, date)) { if (ck == null) { return; } Console.WriteLine("=====================0를 입력하시면 다시시작합니다.\t 1은 종료"); Console.WriteLine("=====================체크 박스를 선택하십시오 3개를 선택하셔야 합니다."); Console.WriteLine("=====================ex)checkbox: ??? 중 ???를 선택하세요"); Console.WriteLine(); Console.Write("(숫자만 입력)첫 번째 시간:"); check_boxs[0] = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(); Console.Write("두 번째 시간:"); check_boxs[1] = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(); Console.Write("세 번째 시간:"); check_boxs[2] = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(); if (check_boxs[0] == 0) { continue; } else if (check_boxs[0] == 1) { return; } else if ((check_boxs[0] > 100 && check_boxs[0] < 300) && (check_boxs[1] > 100 && check_boxs[1] < 300) && (check_boxs[2] > 100 && check_boxs[2] < 300)) { webR.WebRe(ck, gid, rid, date, check_boxs); Console.Clear(); search.hi(ck, gid, rid, date); } } break; case 3: que.Check(ck, "cancel"); break; default: continue; } Console.WriteLine("작업 완료-아무키나 눌러주세요"); Console.ReadKey(); } }
//public static CookieContainer coockie = new CookieContainer(); public void WebRe(CookieContainer cookie, int gid, int rid, int date, int[] _check) { //Console.WriteLine(cookie); if (cookie == null) { MessageBox.Show("허가받지 않은 사용자입니다"); return; } int checkbox = 0; Que_reserve Que = new Que_reserve(); Write_reserve write = new Write_reserve(); string[,] tmps = new string[10, 2]; tmps = Que.Check(cookie, "select"); string cancel_code = tmps[0, 0]; string url_insert_bookingrid = "http://lib.tu.ac.kr/studyroom/insertReserve"; HttpWebRequest insert_booking = (HttpWebRequest)WebRequest.Create(url_insert_bookingrid); //string insert_reserve_info = "group_id=61&room_id=62&reserve_date=20191023&checkbox=190"; string insert_reserve_info = ""; if (_check[1] == 0 && _check[2] == 0) { insert_reserve_info = "group_id=" + Convert.ToString(gid) + "&room_id=" + Convert.ToString(rid) + "&reserve_date=" + Convert.ToString(date) + "&checkbox=" + Convert.ToString(_check[0]) + "&checkbox=" + Convert.ToString(_check[0] + 1) + "&checkbox=" + Convert.ToString(_check[0] + 2); } else { insert_reserve_info = "group_id=" + Convert.ToString(gid) + "&room_id=" + Convert.ToString(rid) + "&reserve_date=" + Convert.ToString(date) + "&checkbox=" + Convert.ToString(_check[0]) + "&checkbox=" + Convert.ToString(_check[1]) + "&checkbox=" + Convert.ToString(_check[2]); } insert_booking.CookieContainer = cookie; insert_booking.Method = "POST"; insert_booking.ContentLength = insert_reserve_info.Length; insert_booking.ContentType = "application/x-www-form-urlencoded; charset=utf-8"; Console.Clear(); Console.WriteLine("Make Stream"); using (TextWriter insert_reserve = (TextWriter) new StreamWriter(insert_booking.GetRequestStream())) { insert_reserve.Write(insert_reserve_info); insert_reserve.Close(); } Console.WriteLine("Send Data..."); using (HttpWebResponse insert_reserve_response = (HttpWebResponse)insert_booking.GetResponse()) { Console.WriteLine(insert_reserve_response.Headers); //Console.WriteLine(insert_reserve_response.ResponseUri); if (insert_reserve_response.ResponseUri.ToString().Contains("ERROR")) { Console.WriteLine("Error : 이미 예약된 시간이나 예기치 못한 에러가 발생했습니다. " + "\n또는 이미 다른 층에 예약을 하셨습니다."); //MessageBox.Show("접근실패", "Error", MessageBoxButtons.OK); insert_reserve_response.Close(); Console.WriteLine("예약 취소"); //can.cancel(cookie, cancel_code); Console.WriteLine("예약 취소 성공"); return; } if (insert_reserve_response.StatusCode.ToString() != "OK") { Console.WriteLine("접근실패"); return; } Console.WriteLine("예약 완료"); } string[,] Ques = new string[10, 2]; Ques = Que.Check(cookie, "select"); for (int i = 0; i < 3; i++)//3인 이유 : 예약을 3개 동시에 할때 3번만 하기위해서 { write.write_res(Ques[i, 0], Ques[i, 1], cookie); } }