Error handling for rendering mail on request.
This commit is contained in:
@@ -318,8 +318,7 @@ namespace Wino.Mail.ViewModels
|
|||||||
renderCancellationTokenSource = new CancellationTokenSource();
|
renderCancellationTokenSource = new CancellationTokenSource();
|
||||||
|
|
||||||
// Mime content might not be available for now and might require a download.
|
// Mime content might not be available for now and might require a download.
|
||||||
try
|
|
||||||
{
|
|
||||||
if (parameters is MailItemViewModel selectedMailItemViewModel)
|
if (parameters is MailItemViewModel selectedMailItemViewModel)
|
||||||
await RenderAsync(selectedMailItemViewModel, renderCancellationTokenSource.Token);
|
await RenderAsync(selectedMailItemViewModel, renderCancellationTokenSource.Token);
|
||||||
else if (parameters is MimeMessageInformation mimeMessageInformation)
|
else if (parameters is MimeMessageInformation mimeMessageInformation)
|
||||||
@@ -327,18 +326,6 @@ namespace Wino.Mail.ViewModels
|
|||||||
|
|
||||||
InitializeCommandBarItems();
|
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)
|
private async Task HandleSingleItemDownloadAsync(MailItemViewModel mailItemViewModel)
|
||||||
{
|
{
|
||||||
@@ -392,6 +379,8 @@ namespace Wino.Mail.ViewModels
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async Task RenderAsync(MimeMessageInformation mimeMessageInformation)
|
private async Task RenderAsync(MimeMessageInformation mimeMessageInformation)
|
||||||
|
{
|
||||||
|
try
|
||||||
{
|
{
|
||||||
var message = mimeMessageInformation.MimeMessage;
|
var message = mimeMessageInformation.MimeMessage;
|
||||||
var messagePath = mimeMessageInformation.Path;
|
var messagePath = mimeMessageInformation.Path;
|
||||||
@@ -446,6 +435,19 @@ namespace Wino.Mail.ViewModels
|
|||||||
|
|
||||||
StatePersistanceService.IsReadingMail = true;
|
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)
|
public override void OnNavigatedFrom(NavigationMode mode, object parameters)
|
||||||
|
|||||||
Reference in New Issue
Block a user