Documentation Center

Importing Keywords using the API example

//Create import manager and load the import definition for the import file.
            ImportManager manager = new ImportManager(UserContext);
            ImportDefinition definition = manager.GetImportDefinition("1000 Keywords.csv", ImportType.ImportKeywords);

/*          Default import settings

            definition.ColumnDelimiter = ColumnDelimiter.Comma;
            definition.DateTimeFormat = "yyyy-MM-dd'T'HH:mm:ss";
            definition.DecimalCharacter = ".";
            definition.ErrorFile = "oe_import.err";
            definition.LogFile = "oe_import.log";
            definition.GroupSeparator = ",";
            definition.TextQualifier = "\"";
            definition.ImportActions = ImportActions.CreateNewKeywords | ImportActions.OverwriteKeywordsOnContacts;
            definition.RowsToImport = 1000;
*/

            //Auto match the import file (Matches fields from the import file with equally named database fields).
            definition.MatchImportFile();

            //Manually match other fields, first the identification fields:
            definition.Mappings["identification_key"].SourceField = definition.SourceFields["key"];
            definition.Mappings["identification_source"].DestinationField.DefaultValue = "Import";
            definition.Mappings["publication_title"].DestinationField.DefaultValue = Publications.CmDutchPublication.Title;
            definition.Mappings["category_title"].SourceField = definition.SourceFields["category"];
            definition.Mappings["keyword_title"].SourceField = definition.SourceFields["keyword"];

            //Hook into the feedback event
            manager.Progress += ImportProgress;

            ImportResult results = manager.ImportKeywords(definition);

            Console.WriteLine(results.AllDataImported ? "All Keywords were successfully imported" : string.Format(CultureInfo.InvariantCulture, "Keywords were imported, but some errors occurred, please check the {0} and {1} log files", definition.ErrorFile, definition.LogFile));
            Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "Created {0} new Keywords.", results.KeywordsCreated));
            Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "Associated {0} Keywords with its Contact.", results.KeywordsAssociated));

Example of implementing the Import feedback:

        static void ImportProgress(object sender, ImportEventArgs e)
        {
            if (e.Progress > 0)
            {
                Console.WriteLine(string.Format("({0}: {1} rows copied)", e.Description, e.Progress));
            }
            else
            {
                Console.WriteLine(string.Format("{0}{1}:{2}{3}", e.ImportStep, e.Description, DateTime.Now.ToString("s"), e.Starting ? " (starting)" : string.Empty));
            }            
        }