Error handling for rendering mail on request.
This commit is contained in:
@@ -318,8 +318,7 @@ namespace Wino.Mail.ViewModels
|
||||
renderCancellationTokenSource = new CancellationTokenSource();
|
||||
|
||||
// Mime content might not be available for now and might require a download.
|
||||
try
|
||||
{
|
||||
|
||||
if (parameters is MailItemViewModel selectedMailItemViewModel)
|
||||
await RenderAsync(selectedMailItemViewModel, renderCancellationTokenSource.Token);
|
||||
else if (parameters is MimeMessageInformation mimeMessageInformation)
|
||||
@@ -327,18 +326,6 @@ namespace Wino.Mail.ViewModels
|
||||
|
||||
InitializeCommandBarItems();
|
||||
}
|
||||
catch (OperationCanceledException)
|
||||
{
|
||||
Log.Information("Canceled mail rendering.");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
DialogService.InfoBarMessage(Translator.Info_MailRenderingFailedTitle, string.Format(Translator.Info_MailRenderingFailedMessage, ex.Message), InfoBarMessageType.Error);
|
||||
|
||||
Crashes.TrackError(ex);
|
||||
Log.Error(ex, "Render Failed");
|
||||
}
|
||||
}
|
||||
|
||||
private async Task HandleSingleItemDownloadAsync(MailItemViewModel mailItemViewModel)
|
||||
{
|
||||
@@ -392,6 +379,8 @@ namespace Wino.Mail.ViewModels
|
||||
}
|
||||
|
||||
private async Task RenderAsync(MimeMessageInformation mimeMessageInformation)
|
||||
{
|
||||
try
|
||||
{
|
||||
var message = mimeMessageInformation.MimeMessage;
|
||||
var messagePath = mimeMessageInformation.Path;
|
||||
@@ -446,6 +435,19 @@ namespace Wino.Mail.ViewModels
|
||||
|
||||
StatePersistanceService.IsReadingMail = true;
|
||||
});
|
||||
|
||||
}
|
||||
catch (OperationCanceledException)
|
||||
{
|
||||
Log.Information("Canceled mail rendering.");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
DialogService.InfoBarMessage(Translator.Info_MailRenderingFailedTitle, string.Format(Translator.Info_MailRenderingFailedMessage, ex.Message), InfoBarMessageType.Error);
|
||||
|
||||
Crashes.TrackError(ex);
|
||||
Log.Error(ex, "Render Failed");
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnNavigatedFrom(NavigationMode mode, object parameters)
|
||||
|
||||
Reference in New Issue
Block a user