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();
        }
Beispiel #3
0
        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);
        }