/// <summary> /// 实体级联删除 /// </summary> /// <param name="parent">被删除的实体</param> public void CascadeDelete(params Domain.Entity[] parent) { if (parent.IsEmpty()) { return; } var entityIds = parent.Select(x => x.EntityId).ToArray(); var attributes = _attributeRepository.Query(x => x.EntityId.In(entityIds)); if (attributes.NotEmpty()) { var ids = attributes.Select(x => x.AttributeId).ToArray(); using (UnitOfWork.Build(_attributeRepository.DbContext)) { //cascade delete _cascadeDeletes?.ToList().ForEach((x) => { x.CascadeDelete(attributes.ToArray()); }); _attributeRepository.DeleteMany(x => x.EntityId.In(entityIds)); //删除依赖项 _dependencyService.Delete(ids); //localization _localizedLabelService.DeleteByObject(ids); foreach (var deleted in attributes) { //remove from cache _cacheService.RemoveEntity(deleted); } } } }
public bool DeleteById(params Guid[] id) { Guard.NotEmpty(id, nameof(id)); var result = true; foreach (var item in id) { var deleted = _webResourceRepository.FindById(item); if (deleted == null) { return(false); } //检查依赖项 _dependencyChecker.CheckAndThrow <Domain.WebResource>(WebResourceDefaults.ModuleName, deleted.WebResourceId); bool flag = _webResourceRepository.DeleteById(item); if (flag) { //删除依赖项 _dependencyService.DeleteByDependentId(WebResourceDefaults.ModuleName, id); //solution component _solutionComponentService.DeleteObject(deleted.SolutionId, deleted.WebResourceId, WebResourceDefaults.ModuleName); //localization _localizedLabelService.DeleteByObject(item); _cacheService.RemoveEntity(deleted); } } return(result); }
private bool DeleteCore(params Domain.SerialNumberRule[] deleteds) { Guard.NotEmpty(deleteds, nameof(deleteds)); var result = true; var ids = deleteds.Select(x => x.SerialNumberRuleId).ToArray(); using (UnitOfWork.Build(_serialNumberRuleRepository.DbContext)) { result = _serialNumberRuleRepository.DeleteMany(ids); //删除依赖项 _dependencyService.Delete(ids); //localization _localizedLabelService.DeleteByObject(ids); //solution component _solutionComponentService.DeleteObject(deleteds.First().SolutionId, SerialNumberRuleDefaults.ModuleName, ids); var entityIds = deleteds.Select(x => x.EntityId).Distinct().ToArray(); //plugin foreach (var eid in entityIds) { _entityPluginDeleter.DeleteByEntityId(eid); } foreach (var deleted in deleteds) { //remove from cache _cacheService.RemoveEntity(deleted); } } return(result); }
private bool DeleteCore(IEnumerable <Chart> deleteds, Func <Chart, bool> validation) { Guard.NotEmpty(deleteds, nameof(deleteds)); var result = true; if (validation != null) { foreach (var deleted in deleteds) { result = validation?.Invoke(deleted) ?? true; } } if (result) { var ids = deleteds.Select(x => x.ChartId); using (UnitOfWork.Build(_chartRepository.DbContext)) { result = _chartRepository.DeleteMany(ids); //删除依赖项 _dependencyService.Delete(ids.ToArray()); //localization _localizedLabelService.DeleteByObject(ids.ToArray()); } } return(result); }
public bool DeleteById(bool deleteTable = true, params Guid[] id) { Guard.NotEmpty(id, nameof(id)); var result = false; using (UnitOfWork.Build(_entityRepository.DbContext)) { foreach (var item in id) { var deleted = _entityRepository.FindById(item); if (deleted == null || !deleted.IsCustomizable) { continue; } //检查依赖项 _dependencyChecker.CheckAndThrow <Domain.Entity>(EntityDefaults.ModuleName, item); //cascade delete _cascadeDeletes?.ToList().ForEach((x) => { x.CascadeDelete(deleted); }); result = _entityRepository.DeleteById(item, deleteTable); //删除依赖项 _dependencyService.DeleteByDependentId(EntityDefaults.ModuleName, item); //solution component _solutionComponentService.DeleteObject(deleted.SolutionId, deleted.EntityId, EntityDefaults.ModuleName); //entity localization _localizedLabelService.DeleteByObject(deleted.EntityId); //remove from cache _cacheService.RemoveEntity(deleted); } } return(result); }
private bool DeleteCore(IEnumerable <Domain.OptionSet> deleteds, Func <Domain.OptionSet, bool> validation) { Guard.NotEmpty(deleteds, nameof(deleteds)); var result = true; foreach (var deleted in deleteds) { result = validation?.Invoke(deleted) ?? true; } if (result) { var ids = deleteds.Select(x => x.OptionSetId).ToArray(); using (UnitOfWork.Build(_optionSetRepository.DbContext)) { //cascade delete _cascadeDeletes?.ToList().ForEach((x) => { x.CascadeDelete(deleteds.ToArray()); }); result = _optionSetRepository.DeleteMany(ids); //删除依赖项 _dependencyService.DeleteByDependentId(OptionSetDefaults.ModuleName, ids); //localization _localizedLabelService.DeleteByObject(ids); foreach (var deleted in deleteds) { //solution component _solutionComponentService.DeleteObject(deleted.SolutionId, deleted.OptionSetId, OptionSetDefaults.ModuleName); //remove from cache _cacheService.RemoveEntity(deleted); } } } return(result); }
private bool DeleteCore(params DuplicateRule[] deleteds) { Guard.NotEmpty(deleteds, nameof(deleteds)); var result = false; var ids = deleteds.Select(x => x.DuplicateRuleId).ToArray(); using (UnitOfWork.Build(_duplicateRuleRepository.DbContext)) { //cascade delete _cascadeDeletes?.ToList().ForEach((x) => { x.CascadeDelete(deleteds.ToArray()); }); result = _duplicateRuleRepository.DeleteMany(ids); //删除依赖项 _dependencyService.Delete(ids); //localization _localizedLabelService.DeleteByObject(ids); var entityIds = deleteds.Select(x => x.EntityId).Distinct().ToArray(); //plugin foreach (var eid in entityIds) { _entityPluginDeleter.DeleteByEntityId(eid); } foreach (var item in deleteds) { //remove from cache _cacheService.SetEntity(item); } } return(result); }
public bool DeleteById(params Guid[] id) { Guard.NotEmpty(id, nameof(id)); var result = false; using (UnitOfWork.Build(_optionSetDetailRepository.DbContext)) { result = _optionSetDetailRepository.DeleteMany(id); //localization _localizedLabelService.DeleteByObject(id); } return(result); }
private bool DeleteCore(params Domain.StringMap[] deleted) { Guard.NotEmpty(deleted, nameof(deleted)); var result = false; var ids = deleted.Select(x => x.StringMapId).ToArray(); using (UnitOfWork.Build(_stringMapRepository.DbContext)) { result = _stringMapRepository.DeleteMany(ids); //localization _localizedLabelService.DeleteByObject(ids); } return(result); }
public bool DeleteById(Guid id) { var entity = _privilegeRepository.FindById(id); var flag = _privilegeRepository.DeleteById(id); if (flag) { //localization _localizedLabelService.DeleteByObject(id); //remove from cache _cacheService.RemoveEntity(entity); } return(flag); }
public bool DeleteById(Guid id) { var entity = _reportRepository.FindById(id); if (entity == null) { return(false); } var result = true; using (UnitOfWork.Build(_reportRepository.DbContext)) { result = _reportRepository.DeleteById(id); //delete assigned roles _roleObjectAccessService.DeleteByObjectId(id, ReportDefaults.ModuleName); //solution component _solutionComponentService.DeleteObject(entity.SolutionId, entity.ReportId, ReportDefaults.ModuleName); //localization _localizedLabelService.DeleteByObject(id); } return(result); }
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); }
private bool DeleteCore(IEnumerable <Domain.RibbonButton> deleteds, Func <Domain.RibbonButton, bool> validation) { Guard.NotEmpty(deleteds, nameof(deleteds)); var result = true; foreach (var deleted in deleteds) { result = validation?.Invoke(deleted) ?? true; } if (result) { var ids = deleteds.Select(x => x.RibbonButtonId).ToArray(); using (UnitOfWork.Build(_ribbonButtonRepository.DbContext)) { result = _ribbonButtonRepository.DeleteMany(ids); //删除依赖项 _dependencyService.Delete(ids); //localization _localizedLabelService.DeleteByObject(ids); } } return(result); }
private bool DeleteCore(IEnumerable <Domain.SystemForm> deleteds, Func <Domain.SystemForm, bool> validation) { Guard.NotEmpty(deleteds, nameof(deleteds)); var result = true; foreach (var deleted in deleteds) { result = validation?.Invoke(deleted) ?? true; } if (result) { var ids = deleteds.Select(x => x.SystemFormId).ToArray(); using (UnitOfWork.Build(_systemFormRepository.DbContext)) { result = _systemFormRepository.DeleteMany(ids); //删除依赖项 _dependencyService.Delete(ids); foreach (var deleted in deleteds) { if (deleted.FormType == (int)FormType.Dashboard) { //solution component result = _solutionComponentService.DeleteObject(deleted.SolutionId, deleted.SystemFormId, DashBoardDefaults.ModuleName); } //localization _localizedLabelService.DeleteByObject(ids); _formService.Init(deleted).DeleteOriginalLabels(deleted); _eventPublisher.Publish(new ObjectDeletedEvent <Domain.SystemForm>(deleted.FormType == (int)FormType.Dashboard ? DashBoardDefaults.ModuleName : FormDefaults.ModuleName, deleted)); //remove from cache _cacheService.RemoveEntity(deleted); } //cascade delete _cascadeDeletes?.ToList().ForEach((x) => { x.CascadeDelete(deleteds.ToArray()); }); } } return(result); }
private bool DeleteCore(IEnumerable <Domain.QueryView> deleteds, Func <Domain.QueryView, bool> validation) { Guard.NotEmpty(deleteds, nameof(deleteds)); var result = true; if (validation != null) { foreach (var deleted in deleteds) { result = validation?.Invoke(deleted) ?? true; } } if (result) { var ids = deleteds.Select(x => x.QueryViewId).ToArray(); using (UnitOfWork.Build(_queryViewRepository.DbContext)) { //cascade delete _cascadeDeletes?.ToList().ForEach((x) => { x.CascadeDelete(deleteds.ToArray()); }); _queryViewRepository.DeleteMany(ids); //删除依赖项 _dependencyService.Delete(ids); //localization _localizedLabelService.DeleteByObject(ids); //remove from cache foreach (var item in deleteds) { _cacheService.RemoveEntity(item); } foreach (var item in deleteds) { _eventPublisher.Publish(new ObjectDeletedEvent <Domain.QueryView>(QueryViewDefaults.ModuleName, item)); } } } return(result); }