Esempio n. 1
0
        public void DeserializeMT300()
        {
            SwiftFile swiftFile = new SwiftFile("TestFiles\\M300_20160114.114822.inc");

            Assert.AreEqual(2, swiftFile.Messages.Count);

            Assert.IsTrue(swiftFile.Messages[0] is MT300);
            Assert.IsTrue(swiftFile.Messages[1] is MT300);

            Assert.AreEqual("EUR", (swiftFile.Messages[0] as MT300).BoughtCurrency);
            Assert.AreEqual("USD", (swiftFile.Messages[1] as MT300).BoughtCurrency);
        }
Esempio n. 2
0
        public string SaveSwiftMessages(SwiftFile swiftFile)
        {
            int saved = 0, total = 0;

            foreach (SwiftMessage message in swiftFile.Messages)
            {
                total++;
                var sql = message.SqlAlreadyExistsString(); NLogger.Instance.Debug("Exists? : {0}", sql);
                if (_databaseController.GetScalar <int>(sql) == 0)
                {
                    sql = message.SqlInsertString(); NLogger.Instance.Debug("Committing to db: {0}", sql);
                    _databaseController.ExecuteNonQuery(sql);
                    saved++;
                }
            }
            return("{0}/{1}".Args(saved, total));
        }
Esempio n. 3
0
        public void ImportFile(string filePathName)
        {
            NLogger.Instance.Info("Importing file {0}", filePathName);

            //if not in dictionary then add it and continue, else ignore and out
            if (filesImported.ContainsKey(filePathName))
            {
                NLogger.Instance.Info("File already exists in service recent memory. (Restart service to flush cache: {0}  ", filePathName);
            }
            else
            {
                filesImported.Add(filePathName, false);

                string fileName = Path.GetFileName(filePathName);
                NLogger.Instance.Info("New file found: {0}  ".Args(fileName));

                try
                {
                    Utils.WaitReady(filePathName); // wait until the file is ready

                    // mark file as being worked on
                    string workingFile = filePathName + ".working";
                    File.Move(filePathName, workingFile);

                    SwiftFile swiftFile = new SwiftFile(workingFile);

                    _dataLayer.SaveSwiftMessages(swiftFile); // and finally distribute the messages

                    // Rename file to .archive
                    string archiveFile = workingFile.Replace(".working", ".archive");
                    File.Move(workingFile, archiveFile);

                    //  NLogger.Instance.Info("  { 0}.".Args(result));
                    filesImported[filePathName] = true;
                }
                catch (Exception ex)
                {
                    NLogger.Instance.Error(ex);
                    throw;
                }
            }
        }
Esempio n. 4
0
        public void DeserialiseDifferentSwiftTypes()
        {
            SwiftFile swiftFile = new SwiftFile("Testfiles\\MT535.00591822.out");

            foreach (SwiftMessage message in swiftFile.Messages)
            {
                Assert.AreEqual(MessageType.MT535, message.Type);
            }

            swiftFile = new SwiftFile("Testfiles\\MT940.00322918.out");
            foreach (SwiftMessage message in swiftFile.Messages)
            {
                Assert.AreEqual(MessageType.MT940, message.Type);
            }

            swiftFile = new SwiftFile("Testfiles\\MT950.00523025.out");
            foreach (SwiftMessage message in swiftFile.Messages)
            {
                Assert.AreEqual(MessageType.MT950, message.Type);
            }
        }