IsTappable() Funktion eingebaut um zu prüfen, ob ein Cocktail aktuell mit der Maschine gezapft werden kann

This commit is contained in:
BuildTools 2024-03-02 22:14:50 +01:00
parent 25d38ee63d
commit fc8ffecbd2

View File

@ -12,19 +12,37 @@ namespace CocktailWeb.Pages
private DbDataContext? _DataContext;
private List<Cocktail> CocktailListe { get; set; } = new();
private List<Filler>? MaschinenFiller;
protected override async Task OnInitializedAsync()
{
await ShowCocktails();
}
private async Task ShowCocktails()
{
_DataContext ??= await DataContextFactory.CreateDbContextAsync();
if (_DataContext != null)
{
CocktailListe = await _DataContext.Cocktails.OrderBy(f => f.Name).ToListAsync();
MaschinenFiller = _DataContext.Fillers
.Include(f => f.Flasche)
.OrderBy(f => f.Pos).ToList();
CocktailListe = await _DataContext.Cocktails
.Include(c => c.Cocktailflaschen)
.ThenInclude(cf => cf.Flasche)
.OrderBy(c => c.Name)
.ToListAsync();
}
}
/// <summary>
/// Prüft, ob der angegebene Cocktail aktuell machbar ist (true) oder ob mindestens eine Flasche nicht auf der Maschine fehlt (false)
/// </summary>
/// <param name="cocktail"></param>
/// <returns></returns>
private bool IsTappable(Cocktail cocktail)
{
if (MaschinenFiller != null)
{
return cocktail.Cocktailflaschen.All(cf => MaschinenFiller.Any(mf => mf.Flasche == cf.Flasche));
}
return false;
}
}
}