Example #1
0
        public void StopListener()
        {
            if (!isListening)
            {
                return;
            }

            try
            {
                isListening = false;
                listener.Stop();
                listenerThread.Interrupt();
                listenerThread.Abort();
            }
            catch (Exception ex) {
                lock (this)
                {
                    if (ErrorOccurred != null)
                    {
                        CPMErrorEventArgs err = new CPMErrorEventArgs();
                        err.Message = "Error: " + ex.Message;
                        ErrorOccurred(this, err);
                    }
                }
            }
        }
Example #2
0
        public void StartListener()
        {
            if (!isListening)
            {
                status += "Starting TCP listener. ";
            }

            isListening    = true;
            listenerThread = new Thread(new ThreadStart(listenToPort));
            try
            {
                listener.Start();
                listenerThread.Start();
                string result = OperationPerformer.Instance().Initialize(this);
                status += result;
            }
            catch (SocketException ex)
            {
                if (ErrorOccurred != null)
                {
                    CPMErrorEventArgs args = new CPMErrorEventArgs();
                    args.Message = ex.Message;
                    args.time    = DateTime.Now;
                    ErrorOccurred(this, args);
                }

                status      = "Error occurred when starting TCP listener: " + ex.Message;
                isListening = false;
                return;
            }
        }
Example #3
0
 private void listenToPort()
 {
     status += "listenToPort() was called. ";
     while (isListening)
     {
         try
         {
             Socket skt = listener.AcceptSocket();
             lock (sockets)
             {
                 sockets.Add(skt);
             }
             new System.Threading.Thread(new System.Threading.ThreadStart(handleCommunication)).Start();
         }
         catch (Exception ex)
         {
             if (ErrorOccurred != null)
             {
                 CPMErrorEventArgs args = new CPMErrorEventArgs();
                 args.Message = ex.Message;
                 args.time    = DateTime.Now;
                 ErrorOccurred(this, args);
             }
         }
     }
 }
Example #4
0
 public void reportError(string error)
 {
     if (ErrorOccurred != null)
     {
         CPMErrorEventArgs err = new CPMErrorEventArgs();
         err.Message = error;
         ErrorOccurred(this, err);
     }
 }
Example #5
0
        private void handleCommunication()
        {
            try
            {
                System.Net.Sockets.Socket handlerSocket;
                lock (sockets)
                {
                    handlerSocket = (Socket)sockets[(sockets.Count - 1)]; // get the last socket that was added
                    sockets.RemoveAt((sockets.Count - 1));
                }
                System.Net.Sockets.NetworkStream networkStream = new System.Net.Sockets.NetworkStream(handlerSocket); //' get the stream from that socket
                BinaryReader reader      = new BinaryReader(networkStream);
                int          length      = reader.ReadInt32();
                byte[]       bytesToRead = reader.ReadBytes(length);
                String       response    = System.Text.Encoding.UTF8.GetString(bytesToRead);

                //CPMPayAgentService.LoggingLayer.PayAgentLogger.Instance().logError(response);
                operationresult res = performOperation(response, handlerSocket.RemoteEndPoint.ToString());

                StringBuilder builder = new StringBuilder();
                XmlWriter     writer  = XmlWriter.Create(builder);
                new XmlSerializer(typeof(operationresult)).Serialize(writer, res);
                //CPMPayAgentService.LoggingLayer.PayAgentLogger.Instance().logError(builder.ToString());
                byte[]       bytesToSend = System.Text.Encoding.UTF8.GetBytes(builder.ToString());
                BinaryWriter binWriter   = new BinaryWriter(networkStream);
                binWriter.Write(bytesToSend.Length);
                binWriter.Write(bytesToSend);
                binWriter.Flush();
                binWriter.Close();
                handlerSocket.Close();
            }
            catch (Exception ex)
            {
                ////TODO: need to send it to named pipe as well
                if (ErrorOccurred != null)
                {
                    CPMErrorEventArgs args = new CPMErrorEventArgs();
                    args.Message = "PerformOperation Error: " + ex.Message;
                    args.time    = DateTime.Now;
                    ErrorOccurred(this, args);
                }

                status = "handleCommunication() error occurred: " + ex.Message;
            }
            status = "handleCommunication() was called. ";
        }
 private void OnErrorOccurred(object sender, CPMErrorEventArgs args)
 {
     //eventLogCPM.WriteEntry(args.Message);
     CPMPayAgentService.LoggingLayer.PayAgentLogger.Instance().logError(args.Message);
 }