public void Initialize(IGoogleSpreadsheetClient client) { Reset(); _client = client; _spreadsheetData = client.SpreadsheetData; foreach (var importer in importers.Concat <ISpreadsheetTriggerAssetsHandler>(serializabledImporters)) { importer.Initialize(client); importer.ExportCommand. Where(x => x.CanExport). Do(x => ExportSheets(Export(_spreadsheetData, x))). Subscribe(). AddTo(LifeTime); importer.ImportCommand. Where(x => x.CanImport). Do(x => { if (autoReloadSpreadsheetOnImport) { _client.ReloadAll(); } }). Do(x => Import(_spreadsheetData, x)). Subscribe(). AddTo(LifeTime); } LifeTime.AddCleanUpAction(() => _client = null); LifeTime.AddCleanUpAction(() => _spreadsheetData = null); }
public IEnumerable <object> Import(ISpreadsheetData spreadsheetData) { if (autoReloadSpreadsheetOnImport) { _client.ReloadAll(); } var result = new List <object>(); foreach (var importer in Importers.Where(x => x.CanImport)) { result.AddRange(Import(spreadsheetData, importer)); } return(result); }