@using System.Linq.Expressions @using AyCode.Core.Loggers @using AyCode.Services.Loggers @using TIAM.Core.Loggers @using TIAM.Entities.Transfers @using TIAMSharedUI.Pages @using TIAMWebApp.Shared.Application.Interfaces @using TIAMWebApp.Shared.Application.Utility @inject IEnumerable LogWriters

Please type an address or swipe to select from preset destinations!

@code { [Parameter] public string OwlId { get; set; } [Parameter] public string TextValue { get; set; } = ""; int? InputDelay { get; set; } = 3500; BindValueMode BindValueMode { get; set; } = BindValueMode.OnDelayedInput; public int SliderElementId = 0; private string _content = ""; string Content { get { return _content; } set { _content = value; OnTextChanged(value); } } [Parameter] public Expression> TExpression { get; set; } [Parameter] public EventCallback OnSliderChanged { get; set; } [Inject] public IJSRuntime JSRuntime { get; set; } [Inject] public ITransferDataService TransferDataService { get; set; } public List Destinations = new List(); public DxTextBox TextField; TransferDestination Result; ILogger _logger; protected override void OnParametersSet() { _logger.Info($"SliderItemSelector is initialized with OwlId: {OwlId}"); base.OnParametersSet(); } protected override void OnAfterRender(bool firstRender) { if(firstRender) { // var dotNetObjRef = DotNetObjectReference.Create(this); // JSRuntime.InvokeVoidAsync("setOwlId", OwlId); // JSRuntime.InvokeVoidAsync("InitOwl", OwlId); // JSRuntime.InvokeVoidAsync("CStoJSCall", dotNetObjRef); } } [JSInvokable] public void ShowCoordinates(string coordinates, string itemId) { _logger.Info($"Slider is changing: {coordinates}, {itemId}"); //content = coordinates + "item = " + itemId; SliderElementId = Convert.ToInt32(itemId); if (SliderElementId > 0) { ParsePresetAddress(GetAddressFromSelectedSliderItem(SliderElementId)); } else { OnTextChanged(Content); } /*StateHasChanged();*/ } public void ParsePresetAddress(string address) { OnSliderChanged.InvokeAsync(address); } public void OnTextChanged(string text) { //if (this.TextValue == text) return; _logger.Info($"Slider text changed: {text}"); OnSliderChanged.InvokeAsync(text); } public string GetAddressFromSelectedSliderItem(int sliderListIndex) { if(Destinations.Count >0 && Destinations.Count >= sliderListIndex) { return Destinations[SliderElementId-1].AddressString; } else return "Something wrong"; } protected override async Task OnInitializedAsync() { _logger = new LoggerClient(LogWriters.ToArray()); Destinations = await TransferDataService.GetDestinationsAsync(); Content = TextValue; InitOwl(); } private void InitOwl() { var dotNetObjRef = DotNetObjectReference.Create(this); JSRuntime.InvokeVoidAsync("setOwlId", OwlId); JSRuntime.InvokeVoidAsync("InitOwl", OwlId); JSRuntime.InvokeVoidAsync("CStoJSCall", dotNetObjRef); } }