Esempio n. 1
0
        private static void SendMessagesFromFile(string fileName)
        {
            StreamReader fileReader = new StreamReader(new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite), Encoding.UTF8);

            while (!fileReader.EndOfStream)
            {
                Console.WriteLine("press <Enter> to send next message");
                Console.ReadLine();

                IMessage message = null;

                string         line        = fileReader.ReadLine();
                FieldReaderFIX fieldReader = new FieldReaderFIX(line);
                IField         field;

                while ((field = fieldReader.GetNextField()) != null)
                {
                    if (message == null && field.Tag == 35)
                    {
                        message = _factory.CreateInstance(field.Value);
                        field   = null;
                    }
                    else if (message == null)
                    {
                        throw new Exception("MsgType(35) missing");
                    }
                    else if (string.Equals(field.Value, "{$ID}"))
                    {
                        field.Value = GetNextID();
                    }
                    else if (string.Equals(field.Value, "{$ID.LAST}"))
                    {
                        field.Value = GetLastID();
                    }
                    else if (string.Equals(field.Value, "{$UTCTimestamp}"))
                    {
                        field.Value = MessageFactoryFIX.ToFIXUTCTimestamp(DateTime.Now.ToUniversalTime());
                    }

                    if (field != null)
                    {
                        message.Fields.Add(field);
                    }
                }

                _engine.Send(message);
            }
        }