mirror of
https://dev.azure.com/TeilRad/sharee.bike%20App/_git/Code
synced 2024-12-23 23:56:26 +01:00
39 lines
1.3 KiB
C#
39 lines
1.3 KiB
C#
|
using System.Linq;
|
|||
|
using TINK.View.Map;
|
|||
|
using TINK.ViewModel.Map;
|
|||
|
using Xamarin.Forms;
|
|||
|
|
|||
|
namespace TINK
|
|||
|
{
|
|||
|
public static class BackdoorMethodHelpers
|
|||
|
{
|
|||
|
public static void DoTapPage(string stationId )
|
|||
|
{
|
|||
|
Serilog.Log.Information($"Request via backdoor to tap station {stationId}.");
|
|||
|
var currentPage = GetCurrentPage();
|
|||
|
var mapPageViewModel = (currentPage as MapPage)?.BindingContext as MapPageViewModel;
|
|||
|
if (mapPageViewModel == null)
|
|||
|
{
|
|||
|
Serilog.Log.Error($"Request via backdoor to tap station {stationId} aborted because current page is not of expected type {typeof(MapPage).Name}. Type detected is {currentPage.GetType().Name}.");
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
Serilog.Log.Information($"Invoking member to tap.");
|
|||
|
mapPageViewModel?.OnStationClicked(stationId);
|
|||
|
}
|
|||
|
|
|||
|
/// <summary> Gets the current page assumed that app is master detail page.</summary>
|
|||
|
/// <returns></returns>
|
|||
|
static Page GetCurrentPage()
|
|||
|
{
|
|||
|
|
|||
|
#if USEFLYOUT
|
|||
|
return (Application.Current.MainPage as FlyoutPage)?.Detail.Navigation.NavigationStack.LastOrDefault();
|
|||
|
#else
|
|||
|
return (Application.Current.MainPage as AppShellViewModel)?.Detail.Navigation.NavigationStack.LastOrDefault();
|
|||
|
#endif
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|