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); }
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)); }
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; } } }
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); } }