using System.Threading.Tasks;
using System.Collections.Generic;
using System.Text.Json.Serialization;
using System.Collections;
private static readonly string apiKey = "patEDzbL0nB6EVsLi.0b0a1d6c85ec23e4cdaa1cfda671672e2f50179dd02d61242eb311cadd0b94a5";
private static readonly string baseId = "app0aUX9icPNnwKLA";
private static readonly string tableName = "Clients";
public class CARI_HESAPLAR
public string CariKod { get; set; }
public string CariUnvan1 { get; set; }
public string CariUnvan2 { get; set; }
public int CariDovizCinsi { get; set; }
public string CariVdaireAdi { get; set; }
public string CariVdaireNo { get; set; }
public string CariEmail { get; set; }
public string CariCepTel { get; set; }
public string CariTemsilciKodu { get; set; }
public List<string> Orders { get; set; }
public DateTime? LastUpdated { get; set; }
public void BindFields(IDictionary<string, object> fields)
if (fields.ContainsKey("Company Name"))
CariUnvan1 = fields["Company Name"]?.ToString();
if (fields.ContainsKey("Currency"))
if (int.TryParse(fields["Currency"]?.ToString(), out var currencyType))
CariDovizCinsi = currencyType;
if (fields.ContainsKey("Tax Office"))
CariVdaireAdi = fields["Tax Office"]?.ToString();
if (fields.ContainsKey("Tax No"))
CariVdaireNo = fields["Tax No"]?.ToString();
if (fields.ContainsKey("Email"))
CariEmail = fields["Email"]?.ToString();
if (fields.ContainsKey("Mobile Phone"))
CariCepTel = fields["Mobile Phone"]?.ToString();
if (fields.ContainsKey("Sales Person"))
var salesPerson = fields["Sales Person"] as IDictionary<string, object>;
if (salesPerson != null && salesPerson.ContainsKey("id"))
CariTemsilciKodu = salesPerson["id"]?.ToString();
if (fields.ContainsKey("Last Modified Time"))
if (DateTime.TryParse(fields["Last Modified Time"]?.ToString(), out var lastModifiedTime))
LastUpdated = lastModifiedTime;
if (fields.ContainsKey("Orders"))
public class CARI_HESAP_ADRESLERI
public string AdrCadde { get; set; }
public string AdrSokak { get; set; }
public string AdrPostaKodu { get; set; }
public string AdrIlce { get; set; }
public string AdrIl { get; set; }
public string AdrUlke { get; set; }
public string AdrTelUlkeKodu { get; set; }
public string AdrTelBolgeKodu { get; set; }
public string AdrTelNo1 { get; set; }
public string AdrTelNo2 { get; set; }
static async Task Main(string[] args)
Console.WriteLine("Airtable'dan kayıtlar listeleniyor...");
await ListAirtableRecordsAsync();
private static async Task ListAirtableRecordsAsync()
using (AirtableBase airtableBase = new AirtableBase(apiKey, baseId))
var cts = new CancellationTokenSource(TimeSpan.FromSeconds(60));
var response = await airtableBase.ListRecords(
filterByFormula: "{Last Modified Time} >= '2024-09-23T09:41:58.000Z'",
new Sort { Field = "Last Modified Time", Direction = SortDirection.Asc }
foreach (var record in response.Records)
var cariHesap = new CARI_HESAPLAR
cariHesap.BindFields(record.Fields);
Console.WriteLine($"Record ID: {cariHesap.CariKod}, Firma Adi: {cariHesap.CariUnvan1}, Last Updated: {cariHesap.LastUpdated}");
Console.WriteLine($"Error: {response.AirtableApiError.ErrorMessage}");