public async Task Execute() { try { IsExecuting = true; RaiseCanExecuteChanged(); await _dataContextManager.BeginTransaction(); await _executeAsync(); await _dataContextManager.SaveChanges(); } catch (Exception) { await _dataContextManager.Rollback(); throw; } finally { IsExecuting = false; RaiseCanExecuteChanged(); } }
public async void Run(IBackgroundTaskInstance taskInstance) { var deferral = taskInstance.GetDeferral(); Debug.WriteLine($"{DateTime.Now} - run background task"); try { await _dataContextManager.RefreshSettingsDataContext(); await _dataContextManager.BeginTransaction(); _actionExecutor.Execute(); } catch (Exception ex) { _logger.Log(ex); } finally { await _dataContextManager.SaveChanges(); deferral.Complete(); } }