@using Lagerbestand.Models @using Lagerbestand.Services @inject ILocationCodeService LocationCodeService @if (!string.IsNullOrEmpty(Code)) {
@if (ShowIcon) { @AreaIcon }
@if (DisplayMode == LocationDisplayMode.Code) { @Code } else if (DisplayMode == LocationDisplayMode.Full) { @Code @DisplayText } else if (DisplayMode == LocationDisplayMode.Text) { @DisplayText } else if (DisplayMode == LocationDisplayMode.Compact) { @ShortText }
@if (ShowStatus) { @(IsOccupied ? "?" : "?") }
} else { - } @code { [Parameter] public string? Code { get; set; } [Parameter] public LocationDisplayMode DisplayMode { get; set; } = LocationDisplayMode.Full; [Parameter] public LocationDisplaySize Size { get; set; } = LocationDisplaySize.Medium; [Parameter] public bool ShowIcon { get; set; } = true; [Parameter] public bool ShowStatus { get; set; } [Parameter] public bool IsOccupied { get; set; } private ParsedLocationCode? _parsed; private string SizeClass => Size switch { LocationDisplaySize.Small => "size-sm", LocationDisplaySize.Large => "size-lg", _ => "size-md" }; private string AreaClass => _parsed?.Area switch { AreaType.Lager => "area-lager", AreaType.Werkstatt => "area-werkstatt", _ => "" }; private string AreaIcon => _parsed?.Area switch { AreaType.Lager => "??", AreaType.Werkstatt => "??", _ => "??" }; private string DisplayText => _parsed != null ? $"{_parsed.Area.GetDisplayName()}, Reihe {_parsed.Row}, {_parsed.Position.GetDisplayName()}, Platz {_parsed.SlotNumber}" : Code ?? ""; private string ShortText => _parsed != null ? $"{_parsed.Area.GetDisplayName()} R{_parsed.Row} {_parsed.Position.GetShortName()} P{_parsed.SlotNumber}" : Code ?? ""; protected override void OnParametersSet() { _parsed = null; if (!string.IsNullOrEmpty(Code) && LocationCodeService.TryParseLocationCode(Code, out var parsed)) { _parsed = parsed; } } }