コード例 #1
0
        //internal static DataTable LoadMerchantFormats( int MerchantId )
        //{
        //  throw new NotImplementedException();
        //}

        internal static int SaveResponse(int requestId, ResponseInfo responseInfo)
        {
            DataTable dt   = null;
            int       nRet = 0;

            try
            {
                GenDS  ds  = new GenDS(SettingsProvider.SqlConnectionString);
                string sql = string.Format("exec [dbo].[aggregator_SaveResponse] {0}, '{1}','{2}','{3}',{4},'{5}'",
                                           requestId,
                                           responseInfo.MerchantCode,
                                           responseInfo.MerchantData.Replace("'", "''"),
                                           responseInfo.ResponseCode,
                                           responseInfo.PaymentSum.Replace(",", "."),
                                           responseInfo.ToString().Replace("'", "''")
                                           );

                dt = ds.Select(sql);
                if (G.ValidateDT(dt))
                {
                    nRet = G._I(dt.Rows[0][0]);
                }
            }
            catch (Exception ex)
            {
                dt   = null;
                nRet = 0;
                throw new InternalException(LogLevel.DATA_ERROR,
                                            string.Format("DP.SaveResponse(RequestId = {0}, Response = {1})", requestId, responseInfo),
                                            ex.Message);
                //LogProvider.Log(LogLevel.DATA_ERROR, LogTarget.TO_SQL, "DP.SaveResponse(requestId, response)", ex.Message);
            }

            return(nRet);
        }
コード例 #2
0
ファイル: ServerBase.cs プロジェクト: Domer79/CIAPI.CS
        private void Listen()
        {
            while (_listen)
            {
                Socket socket;
                try
                {
                    socket = _listener.AcceptSocket();

                }
                catch (SocketException ex)
                {
                    if (ex.Message.Contains("A blocking operation was interrupted by a call to WSACancelBlockingCall"))
                    {
                        return;
                    }
                    throw;
                }


                if (socket.Connected)
                {
                    try
                    {
                        LogMessage("Socket connected");


                        var buffer = new Byte[_recieveBufferSize];
                        StringBuilder sb = new StringBuilder();
                        int count = -1;
                        string reqText;

                        count = socket.Receive(buffer, buffer.Length, 0);
                        reqText = Encoding.ASCII.GetString(buffer, 0, count);
                        sb.Append(reqText);
                        var pattern = new Regex("Content-Length: (?<length>\\d+)", RegexOptions.Multiline | RegexOptions.Singleline | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);
                        int contentLength;
                        int bodyLength;
                        if (pattern.IsMatch(reqText))
                        {
                            contentLength = int.Parse(pattern.Match(reqText).Groups["length"].Value);
                            if (contentLength > 0)
                            {
                                int pos = reqText.IndexOf("\r\n\r\n");

                                bodyLength = reqText.Length - (pos + 4);
                                while (bodyLength < contentLength)
                                {

                                    count = socket.Receive(buffer, buffer.Length, 0);
                                    reqText = Encoding.ASCII.GetString(buffer, 0, count);
                                    bodyLength = bodyLength + reqText.Length;
                                    sb.Append(reqText);
                                }

                            }
                        }

                        reqText = sb.ToString();
                        LogMessage("SERVER RECEVIED:\n" + reqText);



                        var request = new RequestInfo(reqText);


                        ResponseInfo response = HandleRequest(request);

                        byte[] responseBytes = Encoding.ASCII.GetBytes(response.ToString());

                        WriteToSocket(responseBytes, ref socket);
                        LogMessage("SERVER SENT:\n" + response.ToString());
                    }
                    catch (Exception ex)
                    {

                        ResponseInfo response = new ResponseInfo()
                                                    {
                                                        Body = ex.ToString(),
                                                        Status = "503 Internal Server Error"
                                                    };
                        byte[] responseBytes = Encoding.ASCII.GetBytes(response.ToString());
                        WriteToSocket(responseBytes, ref socket);
                        LogMessage("SERVER SENT:\n" + response.ToString());

                    }
                    socket.Close();
                    LogMessage("Socket Closed");
                }
            }

        }
コード例 #3
0
ファイル: ServerBase.cs プロジェクト: fagan2888/CIAPI.CS
        private void Listen()
        {
            while (_listen)
            {
                Socket socket;
                try
                {
                    socket = _listener.AcceptSocket();
                }
                catch (SocketException ex)
                {
                    if (ex.Message.Contains("A blocking operation was interrupted by a call to WSACancelBlockingCall"))
                    {
                        return;
                    }
                    throw;
                }


                if (socket.Connected)
                {
                    try
                    {
                        LogMessage("Socket connected");


                        var           buffer = new Byte[_recieveBufferSize];
                        StringBuilder sb     = new StringBuilder();
                        int           count  = -1;
                        string        reqText;

                        count   = socket.Receive(buffer, buffer.Length, 0);
                        reqText = Encoding.ASCII.GetString(buffer, 0, count);
                        sb.Append(reqText);
                        var pattern = new Regex("Content-Length: (?<length>\\d+)", RegexOptions.Multiline | RegexOptions.Singleline | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);
                        int contentLength;
                        int bodyLength;
                        if (pattern.IsMatch(reqText))
                        {
                            contentLength = int.Parse(pattern.Match(reqText).Groups["length"].Value);
                            if (contentLength > 0)
                            {
                                int pos = reqText.IndexOf("\r\n\r\n");

                                bodyLength = reqText.Length - (pos + 4);
                                while (bodyLength < contentLength)
                                {
                                    count      = socket.Receive(buffer, buffer.Length, 0);
                                    reqText    = Encoding.ASCII.GetString(buffer, 0, count);
                                    bodyLength = bodyLength + reqText.Length;
                                    sb.Append(reqText);
                                }
                            }
                        }

                        reqText = sb.ToString();
                        LogMessage("SERVER RECEVIED:\n" + reqText);



                        var request = new RequestInfo(reqText);


                        ResponseInfo response = HandleRequest(request);

                        byte[] responseBytes = Encoding.ASCII.GetBytes(response.ToString());

                        WriteToSocket(responseBytes, ref socket);
                        LogMessage("SERVER SENT:\n" + response.ToString());
                    }
                    catch (Exception ex)
                    {
                        ResponseInfo response = new ResponseInfo()
                        {
                            Body   = ex.ToString(),
                            Status = "503 Internal Server Error"
                        };
                        byte[] responseBytes = Encoding.ASCII.GetBytes(response.ToString());
                        WriteToSocket(responseBytes, ref socket);
                        LogMessage("SERVER SENT:\n" + response.ToString());
                    }
                    socket.Close();
                    LogMessage("Socket Closed");
                }
            }
        }