@page "/" @using Blazor.IndexedDB @using DBTest.DB @using Microsoft.Data.SqlClient @inject IIndexedDbFactory DbFactory Home

Artikelliste

@if (artikelliste == null) {

Loading...

} else {
@foreach (var quote in artikelliste) {

"@quote.Barcode"

@quote.Bezeichnung
}
} @code { private List artikelliste; protected override async Task OnInitializedAsync() { await LoadQuotesAsync(); } private async Task LoadQuotesAsync() { using (var db = await DbFactory.Create()) { // Load quotes from IndexedDB artikelliste = db.ArtikelListe.ToList(); // If no quotes exist in IndexedDB, fetch from API if (artikelliste == null || artikelliste.Count == 0) { await FetchAndStoreQuotesFromDBAsync(); } } } private async Task FetchAndStoreQuotesFromDBAsync() { using (var db = await DbFactory.Create()) { using (SqlConnection con = new SqlConnection("Data Source=APP03AC;Initial Catalog=KassenSystem;User Id=KassenManager;Password=ks;Max Pool Size=600;Connection Timeout=3000;encrypt=true;")) { con.Open(); // 0 1 2 3 4 5 string sql = "SELECT [ArtikelMA].[ArtikelId], [ArtikelNummer], [ArtikelMA].[Barcode], [Bontext], [Mengeneinheit], isnull([Farbe], '') FROM [Kassensystem].[KS].[ArtikelMA] left join [Kassensystem].[KS].[ArtikelVariantenMA] on [ArtikelMA].[ArtikelId] = [ArtikelVariantenMA].[ArtikelId] where [ArtikelMA].GeloeschtAm is null and istAusgeblendet = 0 and [ArtikelVariantenMA].GeloeschtAm is null order by ArtikelId, Farbe"; using(SqlCommand cmd = new SqlCommand(sql, con)) { using(SqlDataReader reader = cmd.ExecuteReader()) { while(reader.Read()) { Artikel a1 = new Artikel(); a1.Key = reader.GetString(0); a1.ArtikelNummer = reader.GetString(1); a1.Variante = reader.GetString(5); a1.Bezeichnung = reader.GetString(3); db.ArtikelListe.Add(a1); } } } } await db.SaveChanges(); // Save changes } } private async Task ForceRefresh() { using (var db = await DbFactory.Create()) { db.ArtikelListe.Clear(); // Clear existing data from IndexedDB await db.SaveChanges(); } await FetchAndStoreQuotesFromDBAsync(); // Fetch fresh data from API } }