IImporter.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. namespace InABox.Core
  5. {
  6. public delegate void ImportNotificationEvent(object sender, string message);
  7. public delegate bool ImportPreProcessEvent(object sender, Dictionary<string, string> values);
  8. public delegate bool ImportPostProcessEvent(object sender, object entity, Dictionary<string, string> values);
  9. public delegate void ImportSaveEvent(object sender, object entity);
  10. public delegate CoreTable ImportLoadEvent(object sender, Type type, String[] fields, String ID);
  11. public interface IImporter
  12. {
  13. string[] Properties { get; }
  14. string[] Fields { get; }
  15. bool HasHeader { get; set; }
  16. int HeaderRow { get; set; }
  17. List<ImportMapping> Mappings { get; }
  18. IEnumerable<string> Log { get; }
  19. event ImportNotificationEvent OnNotify;
  20. event ImportPreProcessEvent BeforeProcess;
  21. event ImportPostProcessEvent AfterProcess;
  22. event ImportSaveEvent OnSave;
  23. event ImportLoadEvent OnLoad;
  24. bool Open(Stream stream);
  25. void Close();
  26. int Import();
  27. bool MoveNext();
  28. bool ReadHeader();
  29. Dictionary<string, string> ReadLine();
  30. }
  31. }