Ejemplo n.º 1
0
        /// <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();
                }
            }
        }
Ejemplo n.º 2
0
 /// <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();
         }
     }
 }