internal async Task MergeInNewTransactions()
{
PersistenceOperationCommands.SaveDatabaseCommand.Execute(this);
var fileName = await GetFileNameFromUser();
if (string.IsNullOrWhiteSpace(fileName))
{
// User cancelled
return;
}
try
{
var account = this.loadFileController.SelectedExistingAccountName;
await this.transactionService.ImportAndMergeBankStatementAsync(fileName, account);
await SyncWithServiceAsync();
MessengerInstance.Send(new TransactionsChangedMessage());
RaisePropertyChanged(() => ViewModel);
NotifyOfEdit();
ViewModel.TriggerRefreshTotalsRow();
MessengerInstance.Send(new StatementReadyMessage(ViewModel.Statement));
}
catch (NotSupportedException ex)
{
FileCannotBeLoaded(ex);
}
catch (KeyNotFoundException ex)
{
FileCannotBeLoaded(ex);
}
catch (TransactionsAlreadyImportedException ex)
{
FileCannotBeLoaded(ex);
}
finally
{
this.loadFileController.Reset();
}
}