예제 #1
0
        //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();
            }
        }
예제 #2
0
        //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);
            }
        }