Exemplo n.º 1
0
 public static void Serialize <T>(Session session, MemoryStream destination, T packet) where T : Packet
 {
     byte[] idBytes = ConverterUtility.GetBytes(packet.GetPacketId());
     destination.Write(idBytes, 0, idBytes.Length);
     packet.Serialize(destination);
     ProtoRegister.ReturnPacket(packet);
 }
Exemplo n.º 2
0
        private void ConvertAndSetResult()
        {
            tbx_Fritz.Clear();

            string input = tbx_Schacharena.Text;

            if (input.Length == 0)
            {
                return;
            }

            if (ProcessSpecialInput(input))
            {
                return;
            }

            try
            {
                tbx_Fritz.Text      = ConverterUtility.ConvertFromSchacharenaToFritz(input);
                tbx_Fritz.BackColor = SystemColors.Control;
            }
            catch (ConverterException ex)
            {
                tbx_Fritz.Text = ex.Message + Environment.NewLine + Environment.NewLine
                                 + ex.StackTrace + Environment.NewLine + Environment.NewLine
                                 + "In SchacharenaZuFritz " + Version + Environment.NewLine + Environment.NewLine
                                 + "Input was:" + Environment.NewLine + input;
                tbx_Fritz.BackColor = Color.Tomato;
            }
        }
Exemplo n.º 3
0
        public static List <Result> GetNewsList(string company, string fromDate, string toDate)
        {
            List <Result> newsResult = new List <Result>();

            try
            {
                int    retry  = _retry;
                string _fDate = ConverterUtility.ParseDate(fromDate);
                string _tDate = ConverterUtility.ParseDate(toDate);
                string facet  = getCompanyFacet(company);
                while (retry > 0)
                {
                    LoggerUtility.WriteLog("Searching Data: ", "Params : \n Company :" + company + "\n Facet : " + facet + "\n From Date : " + _fDate + "\n To Date : " + _tDate + "\n Retry : " + retry);
                    var _result = getNewsList(company, facet, _fDate, _tDate);
                    Thread.Sleep(_delay);
                    if (_result != null && _result.Count > 0)
                    {
                        newsResult = _result;
                        retry      = 0;
                    }
                    else
                    {
                        retry--;
                        _fDate = ConverterUtility.AddDays(_fDate, -2);
                        _tDate = ConverterUtility.AddDays(_tDate, 2);
                    }
                }
            }
            catch (Exception ex)
            {
                LoggerUtility.WriteLog("Error in Getting News List", ex.Message);
            }
            return(newsResult);
        }
Exemplo n.º 4
0
        internal override void Publish(Exception e)
        {
            LogEntity logEntity = new LogEntity();

            logEntity.LogType     = "error";
            logEntity.Message     = e.Message;
            logEntity.JsonMessage = ConverterUtility.WriteFromObject(e);
            _logRepository.Create(logEntity);
        }
Exemplo n.º 5
0
        public void WriteError(string message, Exception ex)
        {
            LogEntity logEntity = new LogEntity();

            logEntity.LogType     = "error";
            logEntity.Message     = ex.Message;
            logEntity.JsonMessage = ConverterUtility.WriteFromObject(ex);
            _logRepository.Create(logEntity);
        }
Exemplo n.º 6
0
    public static Packet Deserialize(Session session, MemoryStream source, out object customErrorData)
    {
        customErrorData = null;
        long begin = source.Position;

        byte[] buffer = new byte[4];
        source.Read(buffer, 0, sizeof(int));
        int    id     = ConverterUtility.GetInt32(buffer);
        Packet packet = ProtoRegister.GetPacket(id);

        packet.DeSerialize(source);
        return(packet);
    }
Exemplo n.º 7
0
        private void TestInternal(int fileIndex)
        {
            const string folder = "Test/";

            string inputPath = folder + "input" + fileIndex + ".txt";
            string input     = File.ReadAllText(inputPath);

            string expectedPath = folder + "expected" + fileIndex + ".txt";
            string expected     = File.ReadAllText(expectedPath);

            string actual = ConverterUtility.ConvertFromSchacharenaToFritz(input);

            Console.WriteLine(actual);
            Assert.AreEqual(expected.Trim(), actual.Trim());
        }
Exemplo n.º 8
0
 public void Send <T>(T packet) where T : Packet
 {
     if (_socket == null)
     {
         string errorMessage = "session not initialize.";
         if (ErrorHandler != null)
         {
             ErrorHandler(this, SessionErrorCode.StateError, errorMessage);
             return;
         }
         throw new Exception(errorMessage);
     }
     if (packet == null)
     {
         string errorMessage = "Packet is invalid.";
         if (ErrorHandler != null)
         {
             ErrorHandler(this, SessionErrorCode.StateError, errorMessage);
             return;
         }
         throw new Exception(errorMessage);
     }
     try
     {
         int    length       = 0;
         int    packetLength = 0;
         byte[] packetBuffer = new byte[_defaultMaxPacketLength];//TODO:内存池;
         using (MemoryStream memoryStream = new MemoryStream(packetBuffer, true))
         {
             memoryStream.Seek(_defaultPacketLength, SeekOrigin.Begin);
             SessionUtil.Serialize(this, memoryStream, packet);
             length = (int)memoryStream.Position;
         }
         packetLength = length - _defaultPacketLength;
         ConverterUtility.GetBytes(packetLength).CopyTo(packetBuffer, 0);
         Send(packetBuffer, 0, length);
     }
     catch (Exception exception)
     {
         _active = false;
         if (ErrorHandler != null)
         {
             ErrorHandler(this, SessionErrorCode.SerializeError, exception.ToString());
             return;
         }
         throw;
     }
 }
Exemplo n.º 9
0
    private bool Process()
    {
        if (_receiver.ReceivedLength != _receiver.Length)
        {
            throw new Exception(string.Format("Receive length '{0}' is not equal to length '{1}'.", _receiver.ReceivedLength.ToString(), _receiver.Length.ToString()));
        }
        if (_receiver.Length < _defaultPacketLength)
        {
            throw new Exception(string.Format("Length '{0}' is smaller than length header.", _receiver.Length.ToString()));
        }
        if (_receiver.Length == _defaultPacketLength)
        {
            int packetLength = ConverterUtility.GetInt32(_receiver.GetBuffer());
            if (packetLength <= 0)
            {
                string errorMessage = string.Format("Packet length '{0}' is invalid.", packetLength.ToString());
                if (ErrorHandler != null)
                {
                    ErrorHandler(this, SessionErrorCode.HeaderError, errorMessage);
                    return(false);
                }
                throw new Exception(errorMessage);
            }
            _receiver.Length += packetLength;
            if (_receiver.Length > _receiver.BufferSize)
            {
                string errorMessage = string.Format("Length '{0}' is larger than buffer size '{1}'.", _receiver.Length.ToString(), _receiver.BufferSize.ToString());
                if (ErrorHandler != null)
                {
                    ErrorHandler(this, SessionErrorCode.OutOfRangeError, errorMessage);//未接收完成,继续;
                    return(false);
                }
                throw new Exception(errorMessage);
            }
            return(true);
        }
        Packet packet = null;

        try
        {
            int    packetLength    = _receiver.Length - _defaultPacketLength;
            object customErrorData = null;
            using (MemoryStream memoryStream = new MemoryStream(_receiver.GetBuffer(), _defaultPacketLength, packetLength, false))
            {
                lock (thisLock)
                {
                    packet = SessionUtil.Deserialize(this, memoryStream, out customErrorData);
                }
            }
            _receiver.Reset(_defaultPacketLength);
            if (packet == null)
            {
                if (CustomErrorHandler != null)
                {
                    CustomErrorHandler(this, customErrorData);
                }
            }
            else
            {
                if (ReceiveHandler != null)
                {
                    ReceiveHandler(this, packet);
                }
            }
        }
        catch (Exception exception)
        {
            _active = false;
            if (ErrorHandler != null)
            {
                ErrorHandler(this, SessionErrorCode.DeserializeError, exception.ToString());
                return(false);
            }
            throw;
        }
        return(true);
    }