using System.Collections.Generic; using System.IO; namespace InABox.Core { public delegate void ImportNotificationEvent(object sender, string message); public delegate bool ImportPreProcessEvent(object sender, Dictionary values); public delegate bool ImportPostProcessEvent(object sender, object entity, Dictionary values); public interface IImporter { string[] Properties { get; } string[] Fields { get; } bool HasHeader { get; set; } int HeaderRow { get; set; } List Mappings { get; } IEnumerable Log { get; } event ImportNotificationEvent OnNotify; event ImportPreProcessEvent BeforeProcess; event ImportPostProcessEvent AfterProcess; bool Open(Stream stream); void Close(); int Import(); bool MoveNext(); bool ReadHeader(); Dictionary ReadLine(); } }