Exemple #1
0
        private int doImport(ListImportOptions opts, Action <ListManager, MutableDataTable, IDictionary <string, string>, IDictionary <string, string> > importAction)
        {
            try {
                // parse data
                MutableDataTable data;
                if (opts.FilePath.EndsWith(".xlsx"))
                {
                    data = DataTable.New.ReadExcel(opts.FilePath);
                }
                else
                {
                    data = DataTable.New.ReadCsv(opts.FilePath);
                }

                Func <string, IDictionary <string, string> > loadSuppliment = (path) => {
                    IDictionary <string, string> dic = null;
                    if (string.IsNullOrWhiteSpace(path) == false)
                    {
                        // load it
                        var lines = File.ReadAllLines(path);
                        dic = lines.Where(x => !string.IsNullOrWhiteSpace(x))
                              .ToDictionary(x => x.Split(':')[0], x => x.Split(':')[1]);
                    }
                    return(dic);
                };

                // load mapping and defaults
                var mapping  = loadSuppliment(opts.MappingFilePath);
                var defaults = loadSuppliment(opts.DefaultFilePath);

                // initialize context
                WithContext(opts, ctx => {
                    var mgr = new ListManager(ctx, opts.List);
                    importAction(mgr, data, mapping, defaults);
                });
            } catch (Exception ex) {
                Console.WriteLine("An error occurred");
                Console.WriteLine(ex.Message);
                return(1);
            }
            return(0);
        }
Exemple #2
0
 public int ImportListData(ListImportOptions opts)
 {
     return(doImport(opts, (mgr, data, mapping, defaults) => mgr.ImportItems(data, mapping, defaults)));
 }