/// <summary> /// 送到後台的request物件並取回response物件 /// </summary> /// <param name="request">request poco</param> /// <returns>response poco</returns> protected virtual AL2POS_Domain GetResponse(AL2POS_Domain request) { AL2POS_Domain result = null; SocketClient.Domain.SocketClient socketClient = null; try { System.Diagnostics.Stopwatch timer = new System.Diagnostics.Stopwatch(); NewJsonWorker <AL2POS_Domain> jsonWorker = new NewJsonWorker <AL2POS_Domain>(); byte[] dataByte = jsonWorker.Serialize2Bytes(request); log.Debug(m => m("5.[AutoLoadQuery][Send] to Back-End Data: {0}", Encoding.ASCII.GetString(dataByte))); string[] setting = ConfigLoader.GetSetting(ConType.AutoLoadQuery).Split(':'); string ip = setting[0]; int port = Convert.ToInt32(setting[1]); int sendTimeout = Convert.ToInt32(setting[2]); int receiveTimeout = Convert.ToInt32(setting[3]); timer.Start(); socketClient = new SocketClient.Domain.SocketClient(ip, port, sendTimeout, receiveTimeout); if (socketClient.ConnectToServer()) { byte[] resultBytes = null; resultBytes = socketClient.SendAndReceive(dataByte); timer.Stop(); log.Debug(m => m("6.[AutoLoadQuery][Receive]Back-End Response(TimeSpend:{1}ms): {0}", Encoding.ASCII.GetString(resultBytes), timer.ElapsedMilliseconds)); result = jsonWorker.Deserialize(resultBytes); } return(result); } catch (SocketException sckEx) { log.Error("[GetResponse]Send Back-End Socket Error: " + sckEx.Message + " \r\n" + sckEx.StackTrace); return(null); } catch (Exception ex) { log.Error("[GetResponse]Send Back-End Error: " + ex.Message + " \r\n" + ex.StackTrace); return(null); } finally { if (socketClient != null) { socketClient.CloseConnection(); } } }
/// <summary> /// 送到後台的request物件並取回response物件 /// </summary> /// <param name="request">request poco</param> /// <returns>response poco</returns> protected virtual AL2POS_Domain GetResponse(AL2POS_Domain request) { AL2POS_Domain result = null; SocketClient.Domain.SocketClient socketClient = null; try { System.Diagnostics.Stopwatch timer = new System.Diagnostics.Stopwatch(); NewJsonWorker<AL2POS_Domain> jsonWorker = new NewJsonWorker<AL2POS_Domain>(); byte[] dataByte = jsonWorker.Serialize2Bytes(request); log.Debug(m => m("5.[AutoLoadQuery][Send] to Back-End Data: {0}", Encoding.ASCII.GetString(dataByte))); string[] setting = ConfigLoader.GetSetting(ConType.AutoLoadQuery).Split(':'); string ip = setting[0]; int port = Convert.ToInt32(setting[1]); int sendTimeout = Convert.ToInt32(setting[2]); int receiveTimeout = Convert.ToInt32(setting[3]); timer.Start(); socketClient = new SocketClient.Domain.SocketClient(ip, port, sendTimeout, receiveTimeout); if (socketClient.ConnectToServer()) { byte[] resultBytes = null; resultBytes = socketClient.SendAndReceive(dataByte); timer.Stop(); log.Debug(m => m("6.[AutoLoadQuery][Receive]Back-End Response(TimeSpend:{1}ms): {0}", Encoding.ASCII.GetString(resultBytes), timer.ElapsedMilliseconds)); result = jsonWorker.Deserialize(resultBytes); } return result; } catch (SocketException sckEx) { log.Error("[GetResponse]Send Back-End Socket Error: " + sckEx.Message + " \r\n" + sckEx.StackTrace); return null; } catch (Exception ex) { log.Error("[GetResponse]Send Back-End Error: " + ex.Message + " \r\n" + ex.StackTrace); return null; } finally { if (socketClient != null) { socketClient.CloseConnection(); } } }