@page "/fundvelo/keydata/{FromRoute}" @inherits CaritasServiceFundVeloKeyDataPageBase @using cwebplusApp.Shared.Models; @using cwebplusApp.Shared.Services; @using System.Globalization; @using Microsoft.AspNetCore.Components.Forms; @using System.IO; @inject NavigationManager NavigationManager @inject IStringLocalizer i18n @inject PageHistoryManager PageHistoryManager @inject MasterDataService MasterDataService @inject Toaster Toaster @inject IJSRuntime JS
@if ("Found".Equals(FromRoute)) {

@i18n["FoundBike"]

} else {

@i18n["MissingBike"]

}
@if (loading) { }
@if ("Found".Equals(FromRoute)) {
@context?.Bezeichnung
@context?.Bezeichnung
@context?.Bezeichnung
} else {
@context?.Bezeichnung
@context?.Bezeichnung
@context?.Bezeichnung
}
@i18n["Cancel"]
@i18n["Continue"]
@code { [Parameter] public string FromRoute { get; set; } private static long MAX_FILE_SIZE = 3145728; //3MB private string imgUrl = string.Empty; private Boolean loading = false; private ColorItem selectedColor; private BicycleType selectedBcType; private string brandStringValue; private Brand selectedBrand; private Brand SelectedBrand { get { return selectedBrand; } set { selectedBrand = (value != null) ? value : new Brand(-999, brandStringValue); } } private void setBrandValue(string value) { brandStringValue = value; selectedBrand = null; } protected async override void OnInitialized() { await GetColors(); await GetBicycleTypes(); await GetBrands(); PageHistoryManager.AddPageToHistory(NavigationManager.Uri); base.OnInitialized(); } private Brand getBrand(Brand brand) { return brand != null ? brand : new Brand(-999, "Test"); } private async Task GetColors() { await MasterDataService.GetColors(); StateHasChanged(); } private async Task GetBicycleTypes() { await MasterDataService.GetBicycleTypes(); StateHasChanged(); } private async Task GetBrands() { await MasterDataService.GetBrands(); StateHasChanged(); } private ColorItem[] Colors { get => MasterDataService.Colors; } private BicycleType[] BicycleTypes { get => MasterDataService.BicycleTypes; } private Brand[] Brands { get => MasterDataService.Brands; } private void Next() { NavigationManager.NavigateTo("fundvelo/account/" + @FromRoute); } private void Cancel() { NavigationManager.NavigateTo("caritas_services"); } private string getAddressLbl() { return i18n.GetString("Address") + " (" + getPlaceLbl() + ")"; } private string getPlaceLbl() { return @FromRoute == "Found" ? i18n.GetString("PlaceOfDiscovery") : i18n.GetString("PlaceOfLoss"); } private async Task OnGatheringPicture(InputFileChangeEventArgs e) { IBrowserFile imgFile = e.File; var buffer = new byte[imgFile.Size]; imgUrl = string.Empty; loading = true; StateHasChanged(); try { using (var stream = imgFile.OpenReadStream(MAX_FILE_SIZE)) { await stream.ReadAsync(buffer); imgUrl = $"data:{imgFile.ContentType};base64,{Convert.ToBase64String(buffer)}"; await stream.DisposeAsync(); } } catch (IOException ex) { Console.WriteLine("Ex.Message is: {0}.", ex.Message); if (ex.Message.Contains("exceeds the maximum of")) { Toaster.ShowError(i18n.GetString("Error.PhotoOrPictureToBig.Title"), i18n.GetString("Error.PhotoOrPictureToBig.Msg", MAX_FILE_SIZE / (1024 * 1024))); } else { Toaster.ShowError(i18n.GetString("Error.IOException.Title"), i18n.GetString("Error.IOException.Msg")); } } catch (JSException ex) { Console.WriteLine("Ex.Message is: {0}.", ex.Message); } finally { Array.Clear(buffer, 0, buffer.Length); buffer = null; loading = false; StateHasChanged(); } } }