public async Task Run()
        {
            var result = await Timer.TimeFuncAsync(async() =>
            {
                var sheet = await _sheetProvider.GetAsync(
                    _appSettings.SheetId,
                    "'Herstructurering Filters Data'!A1:H9",
                    _appSettings.ApiKey);

                return(_sheetMapper.Map <EpicTracking>(sheet));
            });

            foreach (var error in result.Item1.ValidationErrors)
            {
                Console.WriteLine($"Column: {error.ColumnName} | Row: {error.RowIndex} | Message: {error.ErrorMessage}");
            }
            Console.WriteLine($"Mapped {result.Item1.ParsedModels.Count} models in {result.Item2.ToString()} " +
                              $"with {result.Item1.ValidationErrors.Count} validation errors");
            Console.WriteLine("===============================================================");
        }
        public async Task Run()
        {
            var result = await Timer.TimeFuncAsync(async() =>
            {
                var sheet = await _sheetProvider.GetAsync("SheetToObjects-a96682815641.json",
                                                          "SheetToObjects demo",
                                                          "1cxAOIdNlb2UJ8h5ADUyqiolQt7znf-S7AAEKJV8VpJc",
                                                          "'store'!A1:U9995");

                return(_sheetMapper.Map <Superstore>(sheet));
            });

            foreach (var error in result.Item1.ValidationErrors)
            {
                Console.WriteLine($"Column: {error.ColumnName} | Row: {error.RowIndex} | Message: {error.ErrorMessage}");
            }
            Console.WriteLine($"Mapped {result.Item1.ParsedModels.Count} models in {result.Item2.ToString()} " +
                              $"with {result.Item1.ValidationErrors.Count} validation errors");
            Console.WriteLine("===============================================================");
        }
 private async Task <Sheet> ReadSheetAsync(string range)
 {
     return(await _adapter.GetAsync(_pathCredential, null, _spreadSheetId,
                                    range));
 }