Error handling for rendering mail on request.

This commit is contained in:
Burak Kaan Köse
2024-07-21 01:58:17 +02:00
parent ebf4bc6f97
commit 1f472d78e0

View File

@@ -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)