public static bool TryRespondModal <TData>(this IModalResponse <TData> source, TData data, bool autoPop = true, bool animate = false)
 {
     if (Application.Current.MainPage.Navigation.ModalStack.Count <= 0)
     {
         return(false);
     }
     source.ModalRequestComplete.SetResult(data);
     if (autoPop)
     {
         Application.Current.MainPage.Navigation.PopModalAsync(animate);
     }
     return(true);
 }
 public static Task <TData> GetResponseAsync <TData>(this IModalResponse <TData> source)
 {
     source.ModalRequestComplete = new TaskCompletionSource <TData>();
     return(source.ModalRequestComplete.Task);
 }