/// <summary> /// Returns a list of data-classes for which an Imex extension exists. /// </summary> /// <returns></returns> public static string[] ListImexDataClasses() { List <string> dataClasses = new List <string>(); foreach (ExtensionInfo info in new XmlDataImexExtensionPoint().ListExtensions()) { ImexDataClassAttribute a = AttributeUtils.GetAttribute <ImexDataClassAttribute>(info.ExtensionClass.Resolve()); if (a != null) { dataClasses.Add(a.DataClass); } } return(dataClasses.ToArray()); }
/// <summary> /// Exports all data-classes for which an Imex extension exists. /// </summary> /// <param name="cmdLine"></param> private void ExportAllClasses(ExportCommandLine cmdLine) { string path = cmdLine.Path; // assume the supplied path is a directory, and create it if it doesn't exist if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } foreach (IXmlDataImex imex in new XmlDataImexExtensionPoint().CreateExtensions()) { ImexDataClassAttribute a = AttributeUtils.GetAttribute <ImexDataClassAttribute>(imex.GetType()); if (a != null) { ImexUtils.Export(imex, Path.Combine(path, a.DataClass), a.DataClass, a.ItemsPerFile); } } }
/// <summary> /// Gets the default number of items exported per file, for the specified Imex extension class. /// </summary> /// <param name="imexClass"></param> /// <returns></returns> public static int GetDefaultItemsPerFile(Type imexClass) { ImexDataClassAttribute a = AttributeUtils.GetAttribute <ImexDataClassAttribute>(imexClass); return(a == null ? 0 : a.ItemsPerFile); }