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, "عملیات حذف با مشکل مواجه شده است"));
     }
 }
Exemple #3
0
 public void Delete(int id)
 {
     _archiveRepository.Delete(id);
 }