示例#1
0
        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);
        }
示例#2
0
        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);
        }