예제 #1
0
        private bool DeleteCore(params Domain.WorkFlow[] deleteds)
        {
            Guard.NotEmpty(deleteds, nameof(deleteds));
            var result = false;
            var ids    = deleteds.Select(x => x.WorkFlowId).ToArray();

            using (UnitOfWork.Build(_workFlowRepository.DbContext))
            {
                result = _workFlowRepository.DeleteMany(ids);
                //solution component
                _solutionComponentService.DeleteObject(deleteds.First().SolutionId, WorkFlowDefaults.ModuleName, ids);
                //localization
                _localizedLabelService.DeleteByObject(ids);
                //dependency objects
                _dependencyService.Delete(ids);
                foreach (var item in deleteds)
                {
                    _eventPublisher.Publish(new ObjectDeletedEvent <Domain.WorkFlow>(WorkFlowDefaults.ModuleName, item));
                }
            }
            return(result);
        }