public async Task <List <NamespaceListDTO> > GetNamespaceListAsync(QueryNamespaceFilterModel filterModel) { List <Namespace> namespacesFromDb = await _namespaceRepository.FindAsync(filterModel, m => m.Name, SortOrder.Ascending); var result = _mapper.Map <List <NamespaceListDTO> >(namespacesFromDb); return(result); }
public async Task DeleteProjectAsync([Required(ErrorMessage = "唯一标识不能为空")] Guid id) { Project projectFromDb = await _projectRepository.FirstOrDefaultAsync(id); if (projectFromDb == null) { throw new MateralConfigCenterException("项目不存在"); } _protalServerUnitOfWork.RegisterDelete(projectFromDb); List <Namespace> namespaces = await _namespaceRepository.FindAsync(m => m.ProjectID == id); foreach (Namespace @namespace in namespaces) { _protalServerUnitOfWork.RegisterDelete(@namespace); } await _protalServerUnitOfWork.CommitAsync(); }
public async Task <List <AddConfigurationItemRequestModel> > GetSyncConfigurationItemModelAsync(SyncModel model) { Guid[] projectIDs = model.Projects.Select(m => m.ID).ToArray(); List <Project> projects = await _projectRepository.FindAsync(m => projectIDs.Contains(m.ID)); var namespaceIDs = new List <Guid>(); foreach (SyncProjectModel project in model.Projects) { namespaceIDs.AddRange(project.Namespaces.Select(m => m.ID)); } List <Namespace> namespaces = await _namespaceRepository.FindAsync(m => namespaceIDs.Contains(m.ID)); var result = new List <AddConfigurationItemRequestModel>(); foreach (SyncProjectModel modelProject in model.Projects) { Project tempProject = projects.FirstOrDefault(m => m.ID == modelProject.ID); if (tempProject == null) { continue; } foreach (SyncNamespaceModel modelNamespace in modelProject.Namespaces) { Namespace tempNamespace = namespaces.FirstOrDefault(m => m.ID == modelNamespace.ID); if (tempNamespace == null) { continue; } foreach (SyncConfigurationItemModel modelConfigurationItem in modelNamespace.ConfigurationItems) { var temp = modelConfigurationItem.CopyProperties <AddConfigurationItemRequestModel>(); temp.ProjectID = tempProject.ID; temp.ProjectName = tempProject.Name; temp.NamespaceID = tempNamespace.ID; temp.NamespaceName = tempNamespace.Name; result.Add(temp); } } } return(result); }