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();
            }
        }
示例#2
0
        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();
            }
        }