private static bool Make_Client_Event(Unit_Event_Type Type, string Data) { if (Tefreeca_client_event != null) //이벤트 구독자가 있어야만 발생.. { Tefreeca_client_EventArgs TC_EvtArgs = new Tefreeca_client_EventArgs(); TC_EvtArgs.type = Type; TC_EvtArgs.data_string = Data; Tefreeca_client_event(null, TC_EvtArgs); return true; } else return false; }
private static bool Make_Client_Event(Unit_Event_Type Type, int Data) { if (Tefreeca_client_event != null) //이벤트 구독자가 있어야만 발생.. { Tefreeca_client_EventArgs TC_EvtArgs = new Tefreeca_client_EventArgs(); TC_EvtArgs.type = Type; TC_EvtArgs.data_int = Data; Tefreeca_client_event(null, TC_EvtArgs); return(true); } else { return(false); } }
public void Eventer_Tefreeca_client_event(object sender, EventArgs e) { //try //{ Tefreeca_client_EventArgs RecieveEventArg = e as Tefreeca_client_EventArgs; if (RecieveEventArg == null) { return; } Unit_Event_Type type = RecieveEventArg.type; switch (type) { case Unit_Event_Type.List_Account: { List <i_List_Account> DR = (List <i_List_Account>)(RecieveEventArg.Data_object_list[0]); List <string[]> L = new List <string[]>(); foreach (i_List_Account R in DR) { L.Add(new String[] { R.No.ToString(), R.Type_order_Site.ToString(), R.User_No.ToString(), R.ID.ToString(), R.PW.ToString(), R.State.ToString() }); } UI.set_Autolistview_delegate(listView_Account, L, Option_Audo_listview.Auto_display); } break; case Unit_Event_Type.List_Connect: { List <i_List_Connect> DR = (List <i_List_Connect>)(RecieveEventArg.Data_object_list[0]); List <string[]> L = new List <string[]>(); foreach (i_List_Connect R in DR) { L.Add(new String[] { R.No.ToString(), R.Order_No.ToString(), R.Unit_No.ToString(), R.Connect_URL.Replace("http://play.afreecatv.com/", "").ToString(), R.Proxy_host.ToString(), R.Type_order.ToString(), R.State.ToString(), R.Login_Account_no == -1 ? "" : R.Login_Account_no.ToString(), R.State_Account_on_connected.ToString(), R.Wait_count.ToString() }); } UI.set_Autolistview_delegate(listView_Connection, L, Option_Audo_listview.Auto_display); } break; case Unit_Event_Type.List_Order: { List <i_List_Order> DR = (List <i_List_Order>)(RecieveEventArg.Data_object_list[0]); List <string[]> L = new List <string[]>(); foreach (i_List_Order R in DR) { L.Add( new String[] { R.No.ToString(), R.User_No.ToString(), R.Connected_count.ToString(), R.Max_connect.ToString(), R.State.ToString(), R.URL.ToString(), R.Type_order.ToString(), }); } UI.set_Autolistview_delegate(listView_Order, L, Option_Audo_listview.Auto_display); } break; case Unit_Event_Type.List_Proxy: { List <i_List_Proxy> DR = (List <i_List_Proxy>)(RecieveEventArg.Data_object_list[0]); List <string[]> L = new List <string[]>(); foreach (i_List_Proxy R in DR) { L.Add( new String[] { R.No.ToString(), R.Host.ToString(), R.Error_count.ToString(), R.State.ToString(), R.Type.ToString(), }); } UI.set_Autolistview_delegate(listView_ProxyOnServer, L, Option_Audo_listview.Auto_display); } break; case Unit_Event_Type.List_Unit: { List <i_List_Unit> DR = (List <i_List_Unit>)(RecieveEventArg.Data_object_list[0]); List <string[]> L = new List <string[]>(); foreach (i_List_Unit R in DR) { L.Add( new String[] { R.No.ToString(), R.Connected_count.ToString(), R.Max_connect.ToString(), R.Proxy.ToString(), R.State.ToString(), R.Wait_count.ToString() }); } UI.set_Autolistview_delegate(listView_Unit, L, Option_Audo_listview.Auto_display); } break; case Unit_Event_Type.List_User: { List <i_List_User> DR = (List <i_List_User>)(RecieveEventArg.Data_object_list[0]); List <string[]> L = new List <string[]>(); foreach (i_List_User R in DR) { L.Add( new String[] { R.No.ToString(), R.Unit_No.ToString(), R.id.ToString(), R.Slot.ToString(), R.Slot_Account.ToString(), R.pay_type.ToString(), R.expire.ToString(), R.User_type.ToString(), R.is_Reseller.ToString(), R.my_Reseller_No.ToString() }); } UI.set_Autolistview_delegate(listView_LoginUser, L, Option_Audo_listview.Auto_display); } break; case Unit_Event_Type.List_ServerInfo: { i_List_ServerInfo DR = (i_List_ServerInfo)(RecieveEventArg.Data_object_list[0]); set_label_delegate(lb_mqc, DR.Command_Q_length.ToString()); } break; default: { } break; } //} //catch (Exception ex) //{ // Console.WriteLine("Error : {0}", ex.ToString()); // throw; //} }
public void Eventer_Tefreeca_client_event(object sender, EventArgs e) { try { Tefreeca_client_EventArgs RecieveEventArg = e as Tefreeca_client_EventArgs; if (RecieveEventArg == null) { return; } Unit_Event_Type type = RecieveEventArg.type; switch (type) { case Unit_Event_Type.Change_connect: //연결 상태가 변하면, { bool connected = (bool)RecieveEventArg.Data_object_list[0]; UI.set_button_delegate(btn_Login, connected, Option_button.enable); if (connected) { UI.set_listBox_delegate(listBox_state_log, new string[] { client_message.로그인_준비_완료.ToString().Replace("_", " ") }, Option_listBox.add); if (Data_structure.is_debug) { UI.set_listBox_delegate(listBox_state_log, new string[] { client_message.디버깅_모드.ToString().Replace("_", " ") }, Option_listBox.add); } } } break; case Unit_Event_Type.Login_success: { UI.set_listBox_delegate(listBox_state_log, new string[] { client_message.로그인_성공.ToString().Replace("_", " ") }, Option_listBox.add); //판낼 정보를 업데이트가 먼저 되어야 한다. UI.set_PanelVisible_delegate(panel_login, false); UI.set_button_delegate(btn_Login, true, Option_button.enable); } break; case Unit_Event_Type.Login_Failure: // 로그인 실패시 { //Login_Failure string s = ""; i_Login_Failure_type Failure_info = (i_Login_Failure_type)RecieveEventArg.Data_object_list[0]; if (Failure_info == i_Login_Failure_type.Duplicate_Login) { s = "중복로그인 불가."; } else if (Failure_info == i_Login_Failure_type.Invalid_login_information) { s = "잘못된 로그인 정보"; } UI.set_listBox_delegate(listBox_state_log, new string[] { client_message.로그인_실패.ToString().Replace("_", " ") + " : " + s }, Option_listBox.add); UI.set_button_delegate(btn_Login, true, Option_button.enable); } break; case Unit_Event_Type.User_info: { i_User_info User_info = (i_User_info)RecieveEventArg.Data_object_list[0]; TimeSpan remind = User_info.Expire - DateTime.Now; Max_Connect = User_info.slot; //최대 연결 가능 슬롯을 세팅해준다. UI.NumericUpDowndelegate(numericUpDown_MaxConnect, Max_Connect, Option_NumericUpDown.Maximum); //최대치로 세팅 UI.NumericUpDowndelegate(numericUpDown_MaxConnect, Max_Connect, Option_NumericUpDown.value); //최대치로 세팅 UI.TrackBardelegate(trackBar_order_maxconnect, 50, Option_TrackBar.value); //맥시멈으로.. Set_MaxConnect = Max_Connect; UI.set_label_delegate(lb_userName, User_info.Id + "님"); UI.set_label_delegate(lb_expire, "expire : " + User_info.Expire.ToShortDateString() + " (" + ((int)remind.TotalDays).ToString() + " days remained.)"); UI.set_label_delegate(lb_usergrade, User_info.type.ToString() + " 등급"); } break; case Unit_Event_Type.Order_no: { //int order_no = RecieveEventArg.data_int; UI.set_button_delegate(btn_connect, "해제", Option_button.text); //UI.set_listBox_delegate(listBox_state_log, new string[] { "접속 명령 생성." }, Option_listBox.add); UI.set_listBox_delegate(listBox_state_log, new string[] { client_message.접속_명령_생성.ToString().Replace("_", " ") }, Option_listBox.add); } break; case Unit_Event_Type.Error_Order: { client_message error_info = (client_message)RecieveEventArg.Data_object_list[0]; UI.set_listBox_delegate(listBox_state_log, new string[] { client_message.오류.ToString().Replace("_", " ") + " : " + error_info.ToString().Replace("_", " ") }, Option_listBox.add); //UI.set_listBox_delegate(listBox_state_log, new string[] { "[오류] : " + error_info }, Option_listBox.add); UI.set_TextBox_delegate(tbx_BJID, true, Option_TextBox.enable); UI.set_button_delegate(btn_connect, "접속", Option_button.text); UI.set_button_delegate(btn_connect, true, Option_button.enable); } break; case Unit_Event_Type.Active_Order: //주문이 활성화 되면 이것을 취소할 수 있게 해준다. { //int order_no = RecieveEventArg.data_int; mode = btn_mode.disconnect; UI.set_button_delegate(btn_connect, true, Option_button.enable); UI.set_listBox_delegate(listBox_state_log, new string[] { client_message.활성화_되었습니다.ToString().Replace("_", " ") }, Option_listBox.add); //UI.set_listBox_delegate(listBox_state_log, new string[] { "활성화 되었습니다." }, Option_listBox.add); //UI.set_listBox_delegate(listBox_state_log, new string[] { "[" + order_no.ToString() + "]활성화." }, Option_listBox.add); } break; case Unit_Event_Type.Order_Info: { i_Order_Info Order_info = (i_Order_Info)RecieveEventArg.Data_object_list[0]; string State = Order_info.State.ToString().Replace("_", " "); UI.set_label_delegate(lb_connect_state, State); /* * if (Order_info.State == State_Order.Close || Order_info.State == State_Order.Closing) //클로징, 클로즈땐 카운트 표시 안함. * UI.set_label_delegate(lb_connect_state, State); * else * UI.set_label_delegate(lb_connect_state, State + " (" + Order_info.Connect_Count + ")"); */ if (Old_State == State_Order.Active && Order_info.State == State_Order.Closing) //활성화 되었다가 클로징으로 바뀌면. { //UI.set_listBox_delegate(listBox_state_log, new string[] { "연결 해제중.." }, Option_listBox.add); UI.set_listBox_delegate(listBox_state_log, new string[] { client_message.연결_해제중.ToString().Replace("_", " ") }, Option_listBox.add); UI.set_TextBox_delegate(tbx_BJID, true, Option_TextBox.enable); } if (Order_info.State == State_Order.Close) //활성화 되었다가 클로징으로 바뀌면. { mode = btn_mode.connect; UI.set_listBox_delegate(listBox_state_log, new string[] { client_message.연결_해제_성공.ToString().Replace("_", " ") }, Option_listBox.add); //UI.set_listBox_delegate(listBox_state_log, new string[] { "연결 해제 성공." }, Option_listBox.add); UI.set_TextBox_delegate(tbx_BJID, true, Option_TextBox.enable); UI.set_button_delegate(btn_connect, "접속", Option_button.text); UI.set_button_delegate(btn_connect, true, Option_button.enable); } Old_State = Order_info.State; } break; case Unit_Event_Type.Server_Connection_Broken: //서버와 연결이 끊김. { //UI.set_listBox_delegate(listBox_state_log, new string[] { "서버와의 접속이 끊어졌습니다." }, Option_listBox.add); UI.set_listBox_delegate(listBox_state_log, new string[] { client_message.서버와_접속이_끊어졌습니다.ToString().Replace("_", " ") }, Option_listBox.add); } break; case Unit_Event_Type.Order_Set_MaxConnect: //최대 연결 수가 변경 수락되면.. { i_R_Order_Set_MaxConnect ir = (i_R_Order_Set_MaxConnect)RecieveEventArg.Data_object_list[0]; if (ir.message == client_message.방송_접속수가_변경되었습니다) { UI.set_listBox_delegate(listBox_state_log, new string[] { client_message.방송_접속수가_변경되었습니다.ToString().Replace("_", " ") + "[" + ir.Max_Connect + "]" }, Option_listBox.add); Set_MaxConnect = ir.Max_Connect; if (int.Parse(numericUpDown_MaxConnect.Value.ToString()) == Set_MaxConnect) { UI.set_button_delegate(btn_set_Maxconnect, false, Option_button.enable); } else { UI.set_button_delegate(btn_set_Maxconnect, true, Option_button.enable); } } else if (ir.message == client_message.방송_접속수_변경중_오류) { UI.set_listBox_delegate(listBox_state_log, new string[] { client_message.방송_접속수_변경중_오류.ToString().Replace("_", " ") }, Option_listBox.add); } if (int.Parse(numericUpDown_MaxConnect.Value.ToString()) == Set_MaxConnect) { UI.set_button_delegate(btn_set_Maxconnect, false, Option_button.enable); } else { UI.set_button_delegate(btn_set_Maxconnect, true, Option_button.enable); } //UI.set_listBox_delegate(listBox_state_log, new string[] { "서버와의 접속이 끊어졌습니다." }, Option_listBox.add); } break; default: { } break; } } catch (Exception ex) { Console.WriteLine("Error : {0}", ex.ToString()); throw; } }
public static void Eventer_Tefreeca_client_event(object sender, EventArgs e) { try { Tefreeca_client_EventArgs RecieveEventArg = e as Tefreeca_client_EventArgs; if (RecieveEventArg == null) { return; } Unit_Event_Type type = RecieveEventArg.type; switch (type) { case Unit_Event_Type.Account_Check_Login: { int connect_no = RecieveEventArg.data_int; //실질적인 로그인 시도. if (!Ldriver.Has_int_key(connect_no)) //드라이브가 없으면 바로 삭제한것으로 간주 { return; } IWebDriver drv = (IWebDriver)Ldriver.Select_key(connect_no); if (login_check(drv)) { i_Updated_Connection_Account iua = new i_Updated_Connection_Account(); iua.Connect_No = connect_no; iua.State = State_Account_on_connected.Logged_Account; TefreecaUnit_interface.Add_Command(Command_Client.Updated_Connection_Account, iua); } else //로긴 상태가 아니라면, 로긴을 해야하는데.. 그래서 다시 setting 로 바꿔서 로긴시도하게끔 만듬. { i_Updated_Connection_Account iua = new i_Updated_Connection_Account(); iua.Connect_No = connect_no; iua.State = State_Account_on_connected.Setting; TefreecaUnit_interface.Add_Command(Command_Client.Updated_Connection_Account, iua); } } break; case Unit_Event_Type.Account_Login: //ㄹ { i_Account_Set iac = (i_Account_Set)RecieveEventArg.Data_object_list[0]; //실질적인 로그인 시도. if (!Ldriver.Has_int_key(iac.Connect_No)) //드라이브가 없으면 바로 삭제한것으로 간주 { return; } IWebDriver drv = (IWebDriver)Ldriver.Select_key(iac.Connect_No); login_afreeca(drv, iac.ID, iac.PW); //여기선 로긴만 한다. } break; case Unit_Event_Type.Check_End_broadcast: //방송이 진행중에 종료되었는지 확인하는 코드 { foreach (i_connect C in RecieveEventArg.Data_object_list) { Thread th = new Thread(new ParameterizedThreadStart(Thread_check_End_Broadcasting)); th.Start(C); //웹브라우저 객체를 매게변수로 넘긴다. } } break; case Unit_Event_Type.Disconnect_All: { Shutdown_ALL(); } break; case Unit_Event_Type.Disconnect_connect: //하나의 연결 해제. { i_connect C = (i_connect)RecieveEventArg.Data_object_list[0]; if (!Ldriver.Has_int_key(C.No)) //드라이브가 없으면 바로 삭제한것으로 간주 { TefreecaUnit_interface.Add_Command( //상태를 업데이트 하도록 한다. Command_Client.Updated_Connection, new i_Updated_Connection(C.No, i_Updated_Connection_Type.State_Connect, State_Connect.Close)); return; } TefreecaUnit_interface.Add_Command( //상태를 업데이트 하도록 한다. Command_Client.Updated_Connection, new i_Updated_Connection(C.No, i_Updated_Connection_Type.State_Connect, State_Connect.Closing)); Thread th = new Thread(new ParameterizedThreadStart(Close_Driver)); th.Start(Ldriver.Select_key(C.No)); //웹브라우저 객체를 매게변수로 넘긴다. th.Join(); TefreecaUnit_interface.Add_Command( //상태를 업데이트 하도록 한다. Command_Client.Updated_Connection, new i_Updated_Connection(C.No, i_Updated_Connection_Type.State_Connect, State_Connect.Close)); try { Ldriver.Remove(C.No); } catch { Console.WriteLine("Already remove webdriver : {0}", C.No); } } break; case Unit_Event_Type.Order_Connect: { i_connect C = JsonConvert.DeserializeObject <i_connect>(RecieveEventArg.data_string); Command_Connect(C); } break; case Unit_Event_Type.Order_Disconnect: { } break; case Unit_Event_Type.Connect_sideBreak: { SideBreak_ConnectNo = RecieveEventArg.data_int; } break; default: { } break; } } catch (Exception ex) { Console.WriteLine("Error : {0}", ex.ToString()); //throw; } }