public TaskResult Execute(TaskInstance taskInstance) { TaskResult taskResult = new TaskResult(); try { using (var scope = _repositoryFactory.BeginRepositoryScope()) { StartActiveNotifier(taskInstance.Id); TaskUtilities.UpdateTaskInstanceStatus(taskInstance.Id, _repositoryFactory, TaskInstanceStatues.InProgress, null); var autoBookRepository = scope.CreateRepository <IAutoBookRepository>(); string autoBookId = taskInstance.Parameters["AutoBookId"].ToString(); var autoBook = autoBookRepository.Get(autoBookId); _autoBooks.Delete(autoBook); TaskUtilities.UpdateTaskInstanceStatus(taskInstance.Id, _repositoryFactory, TaskInstanceStatues.CompletedSuccess, DateTime.UtcNow); taskResult.Status = TaskInstanceStatues.CompletedSuccess; } } catch (System.Exception exception) { TaskUtilities.UpdateTaskInstanceStatus(taskInstance.Id, _repositoryFactory, TaskInstanceStatues.CompletedError, DateTime.UtcNow); taskResult.Status = TaskInstanceStatues.CompletedError; taskResult.Exception = exception; } finally { StopActiveNotifier(); } return(taskResult); }
/// <summary> /// It is called dynamically. /// </summary> public async Task Execute(CancellationToken cancellationToken, AutoBook autoBook) { try { _auditEventRepository.Insert(AuditEventFactory.CreateAuditEventForInformationMessage(0, 0, $"Deleting AutoBook (AutoBookID={autoBook.Id})")); var autobookDeleted = false; try { _autoBooks.Delete(autoBook); autobookDeleted = true; } catch (Exception ex) { _auditEventRepository.Insert(AuditEventFactory.CreateAuditEventForException(0, 0, $"Error deleting AutoBook (AutoBookID={autoBook.Id})", ex)); } if (autobookDeleted) { _auditEventRepository.Insert( AuditEventFactory.CreateAuditEventForInformationMessage(0, 0, "Deleted AutoBook")); } } finally { foreach (var dbContext in _tenantDbContexts) { try { await dbContext.SaveChangesAsync(cancellationToken).ConfigureAwait(false); } catch //ignore exception { } } } }
public void DeleteAutoBook(AutoBook autoBook) { _autoBooks.Delete(autoBook); return; }