@page "/"
@using Blazor.IndexedDB
@using DBTest.DB
@using Microsoft.Data.SqlClient
@inject IIndexedDbFactory DbFactory
Home
Artikelliste
@if (artikelliste == null)
{
}
else
{
@foreach (var quote in artikelliste)
{
}
}
@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()
{
try
{
using (var db = await DbFactory.Create())
{
//Läuft nicht auf dem Client !!!!
// 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);
// }
// }
// }
// }
Artikel a1 = new Artikel();
a1.Key = "1";
a1.ArtikelNummer = "0815";
a1.Variante = "";
a1.Bezeichnung = "Testartikel";
db.ArtikelListe.Add(a1);
await db.SaveChanges(); // Save changes
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
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
}
}