public override bool Load(IPluginParams pluginParams, IEnumerable <object> transformed) { var loaderParams = pluginParams as SimpleSqlLoaderParams; if (loaderParams == null) { throw new ArgumentException($"{this.GetType().Name} expects parameters of ${nameof(SimpleSqlLoaderParams)} type."); } var errors = new List <SimpleSqlLoaderParams.Error>(); using (var db = _dbFactory.Create(loaderParams.DbType, loaderParams.ConnectionString)) { foreach (var entity in transformed) { try { // ** TODO: Upsert based on more sophisticated keys. InsertEntity(db, entity); } catch (Exception ex) { errors.Add(new SimpleSqlLoaderParams.Error(entity, ex)); } } } loaderParams.Errors = errors.AsReadOnly(); return(!loaderParams.Errors.Any()); }
public IEnumerable <object> Extract(IPluginParams pluginParams) { var csvParams = pluginParams as CsvExtractorParams; if (csvParams == null) { throw new ArgumentException($"Parameters must be of type ${nameof(CsvExtractorParams)}."); } var results = new List <object>(); foreach (var file in csvParams.Files) { using (var reader = new StreamReader(File.OpenRead(file.Path))) using (var csv = new CsvReader(reader)) { results.AddRange(csv.GetRecords(file.ModelType).ToArray()); } } return(results); }
public abstract bool Load(IPluginParams pluginParams, IEnumerable <object> transformed);
public override bool Load(IPluginParams pluginParams, System.Collections.Generic.IEnumerable <object> transformed) { return(true); }
public override IEnumerable <object> Transform(IPluginParams pluginParams, IEnumerable <object> extracted) { return(Enumerable.Empty <object>()); }
public abstract IEnumerable <object> Transform(IPluginParams pluginParams, IEnumerable <object> extracted);