private ArtifactResultSet ToNovaArtifactResultSet(ICollection <SqlDiscardPublishDetails> discardPublishDetails, PublishEnvironment environment, IDictionary <int, string> projectsNames) { var artifactResultSet = new ArtifactResultSet(); if (discardPublishDetails != null) { artifactResultSet.Artifacts.Clear(); foreach (var dpd in discardPublishDetails) { var artifact = new Artifact { Id = dpd.ItemId, Name = dpd.Name, ParentId = dpd.ParentId, OrderIndex = dpd.OrderIndex, ItemTypeId = dpd.ItemType_ItemTypeId, Prefix = dpd.Prefix, ItemTypeIconId = dpd.Icon_ImageId, PredefinedType = dpd.PrimitiveItemTypePredefined, ProjectId = dpd.VersionProjectId, Version = dpd.VersionsCount == 0 ? -1 : dpd.VersionsCount, IsStandard = dpd.InstanceItemTypeTypeId.HasValue }; if (environment != null && environment.SensitivityCollector.ArtifactModifications != null) { ReuseSensitivityCollector.ArtifactModification artifactModification; if (environment.SensitivityCollector.ArtifactModifications.TryGetValue(artifact.Id, out artifactModification) && artifactModification?.ModifiedPropertyTypes != null) { artifactResultSet.ModifiedProperties.Add(artifact.Id, new List <Property>()); artifactResultSet.ModifiedProperties[artifact.Id].AddRange( artifactModification.ModifiedPropertyTypes.Select(p => new Property { PropertyTypeId = p.Item1, Predefined = p.Item2 })); } } artifactResultSet.Artifacts.Add(artifact); } SortArtifactsByProjectNameThenById(projectsNames, artifactResultSet); } if (projectsNames != null) { artifactResultSet.Projects.Clear(); artifactResultSet.Projects.AddRange(projectsNames.Select(pn => new Item { Id = pn.Key, Name = pn.Value }).ToList()); } return(artifactResultSet); }
private static void SortArtifactsByProjectNameThenById(IDictionary <int, string> projectsNames, ArtifactResultSet novaArtifactResultSet) { var artifactResultSet = novaArtifactResultSet.Artifacts.ToArray(); novaArtifactResultSet.Artifacts.Clear(); novaArtifactResultSet.Artifacts.AddRange( artifactResultSet.OrderBy(a => { string projectName; if (a.ProjectId <= 0) { return(string.Empty); } projectsNames.TryGetValue(a.ProjectId, out projectName); return(projectName); }).ThenBy(a => a.Id)); }