private async Task ArchiveTask(NextPipeTask task) { var insertSuccessful = false; var archiveId = new Id(); // First try to archive to prevent data loss try { await _archiveRepository.Insert(new ArchiveObject { Id = archiveId.Value, Type = NextPipeObjectType.NextPipeTask, TypeReferenceId = task.Id, ArchiveReason = ReasonForArchive.TaskCompleted, Metadata = task }); insertSuccessful = true; } catch (Exception e) { Console.WriteLine(e); insertSuccessful = false; } if (insertSuccessful) { try { await _tasksRepository.Delete(task.Id); } catch (Exception e) { Console.WriteLine(e); await _archiveRepository.Delete(archiveId.Value); } } }
public Tuple <bool, string> Delete(long requestId) { try { using (var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled)) { _cartableRepository.Delete(c => c.RequestId == requestId); _commissionRepository.Delete(c => c.RequestId == requestId); _councilRepository.Delete(c => c.RequestId == requestId); _attachmentRepository.Delete(a => a.RequestId == requestId); _voteRepository.Delete(v => v.RequestId == requestId); _archiveRepository.Delete(a => a.RequestId == requestId); _commissionSpecialEducationRepository.Delete(c => c.CommissionId == requestId); _requestRepository.Delete(r => r.Id == requestId); _unitOfWork.SaveChanges(); scope.Complete(); return(new Tuple <bool, string>(true, "عملیات حذف با موفقیت انجام شده است")); } } catch (Exception ex) { return(new Tuple <bool, string>(false, "عملیات حذف با مشکل مواجه شده است")); } }
public void Delete(int id) { _archiveRepository.Delete(id); }