protected virtual async Task<MessageResult> ShowMessageBoxAsync(string message, string caption = "", MessageButton button = MessageButton.OK, MessageImage icon = MessageImage.None)
{
if (!_configurationResultMap.ContainsKey(button))
{
throw new ArgumentOutOfRangeException("button");
}
var messageResult = MessageResult.None;
var currentPage = Application.Current.CurrentPage();
if (currentPage != null)
{
var configuration = _configurationResultMap[button];
var result = Xamarin.Forms.MessagingCenter.SendAlert(currentPage, caption, message, configuration.PositiveButton, configuration.NegativeButton);
await result.Task;
messageResult = result.Task.Result ? configuration.PositiveResult: configuration.NegativeResult;
}
return messageResult;
}