private void connect_Click(object sender, EventArgs e) { createOnlySocketStream(OutStreamList); foreach (IPEndPoint ipEndPoint in socketMap.Keys) { try { socketMap[ipEndPoint].Connect(ipEndPoint); logger.Info(string.Format("conneted {0}", ipEndPoint)); socketGrid.DataSource = socketMap.ToList <KeyValuePair <IPEndPoint, TcpClient> >(); } catch (Exception error) { logger.Equals(error.ToString()); } } }
public void WorkThreadFunction() { try { TransactionUtil.transfer2Server(); TransactionUtil.downloadStation(); TransactionUtil.downloadAuthenCode(); TransactionUtil.downloadUsers(); TransactionUtil.downloadLounge(); TransactionUtil.downloadArea(); TransactionUtil.downloadGroup(); TransactionUtil.downloadRole(); // do any background work } catch (Exception ex) { // log errors logger.Equals(ex.Message); } }
public void ReceiveConfirm(STRUCT_0419 message) { string OrgOrderNumber = message.ORIGINAL_ORDER_IDENTIFICATION; string OrderNumber = message.ORDER_IDENTIFICATION; int cancelQty = Int32.Parse(message.REAL_MODIFY_OR_CANCEL_ORDER_QUANTITY); int orderQty = Int32.Parse(message.ORDER_QUANTITY); int rejectQty = orderQty - cancelQty; IEnumerable <신규주문> query = System.Linq.Enumerable.Where <신규주문>(신규주문테이블, n => n.주문번호 == OrgOrderNumber); IEnumerable <취소주문> query2 = System.Linq.Enumerable.Where <취소주문>(취소주문테이블, n => n.주문번호 == OrderNumber); int ticketSeq = 0; if (query2.Any <취소주문>()) { foreach (취소주문 find in query2) { lock (MainForm.lockObj) { find.취소거부 = rejectQty; find.취소확인 = cancelQty; ticketSeq = find.시퀀스1; } } } if (message.ORDER_REJECTED_REASON_CODE.Equals("0803") || message.ORDER_REJECTED_REASON_CODE.Equals("0804")) { if (query.Any <신규주문>()) { STRUCT_0393 order = null; foreach (신규주문 find in query) { find.취소확인 = 0; if (find.매매구분.Equals("1")) { //매수 주문하기 order = new STRUCT_0393(find.토픽, ticketSeq, find.종목, MainForm.orderNumber.ToString("0000000000"), "0000000000", "2", OrderParam.NewOrder, rejectQty.ToString("0000000000"), find.가격); } else { //매도 주문하기 order = new STRUCT_0393(find.토픽, ticketSeq, find.종목, MainForm.orderNumber.ToString("0000000000"), "0000000000", "1", OrderParam.NewOrder, rejectQty.ToString("0000000000"), find.가격); } } if (order != null) { Task NewOrderThread = new Task(() => this.NewOrder(order)); NewOrderThread.Start(); } } } else { if (query.Any <신규주문>()) { STRUCT_0393 order = null; foreach (신규주문 find in query) { find.취소확인 = find.취소확인 + cancelQty; if (cancelQty < orderQty) { if (find.매매구분.Equals("1")) { //매수 주문하기 order = new STRUCT_0393(find.토픽, find.시퀀스1, find.종목, MainForm.orderNumber.ToString("0000000000"), "0000000000", "2", OrderParam.NewOrder, rejectQty.ToString("0000000000"), find.가격); } else { //매도 주문하기 order = new STRUCT_0393(find.토픽, find.시퀀스1, find.종목, MainForm.orderNumber.ToString("0000000000"), "0000000000", "1", OrderParam.NewOrder, rejectQty.ToString("0000000000"), find.가격); } } else { logger.Equals("NEVER canceled qty bigger then cancel qty"); } } if (order != null && cancelQty != orderQty) // 실제 취소된 수량과 취소요청 수량이 같을 경우 전량 취소 성공이라 주문을 안낸다 { Task NewOrderThread = new Task(() => this.NewOrder(order)); NewOrderThread.Start(); } } } GETDATA(); }