public async Task Bake(ISheetImporter importer, TimeZoneInfo timeZoneInfo) { AllSheets.Clear(); var context = new SheetConvertingContext { Container = this, Logger = _logger, TimeZoneInfo = timeZoneInfo }; var sheetProps = GetType() .GetProperties(BindingFlags.Instance | BindingFlags.Public) .Where(p => p.PropertyType.IsSubclassOf(typeof(Sheet))); var success = await importer.Load(); if (!success) { _logger.LogError($"Failed to import"); return; } foreach (var prop in sheetProps) { var data = importer.GetData(prop.Name); if (data == null) { _logger.LogError($"Failed to find sheet: {prop.Name}"); continue; } var rawSheet = new RawSheet(data); var sheet = Activator.CreateInstance(prop.PropertyType) as Sheet; sheet.ConvertFromRaw(rawSheet, context); prop.SetValue(this, sheet); sheet.Name = prop.Name; AllSheets.Add(sheet); } PostLoad(context); IsLoaded = true; }
public async Task <bool> Bake(ISheetImporter importer) { var context = new SheetConvertingContext { Container = this, Logger = _logger, }; var success = await importer.Import(context); if (!success) { return(false); } PostLoad(); return(true); }
public Task Bake(ISheetImporter importer) { return(Bake(importer, TimeZoneInfo.Utc)); }