/// <summary> /// Finds all items under a parent group type and creates new WixGroup data for them. /// </summary> /// <param name="parentType">The type of the parent group to flatten.</param> /// <param name="removeUsedRows">Whether to remove used group rows before returning.</param> public void FlattenAndRewriteGroups(ComplexReferenceParentType parentType, bool removeUsedRows) { var parentTypeString = parentType.ToString(); Debug.Assert(this.groupTypes.Contains(parentTypeString)); this.LoadFlattenOrderGroups(); if (this.Messaging.EncounteredError) { return; } foreach (Item item in this.items) { if (parentTypeString == item.Type) { this.CreateOrderedList(item.Type, item.Id, out var orderedItems); this.CreateNewGroupRows(item.Type, item.Id, orderedItems); } } if (removeUsedRows) { this.RemoveUsedGroupRows(); } }
/// <summary> /// Finds all nested items under a parent group and creates new WixGroup data for them. /// </summary> /// <param name="parentType">The group type for the parent group to flatten.</param> /// <param name="parentId">The identifier of the parent group to flatten.</param> /// <param name="removeUsedRows">Whether to remove used group rows before returning.</param> public void FlattenAndRewriteRows(ComplexReferenceParentType parentType, string parentId, bool removeUsedRows) { var parentTypeString = parentType.ToString(); Debug.Assert(this.groupTypes.Contains(parentTypeString)); this.CreateOrderedList(parentTypeString, parentId, out var orderedItems); if (this.Messaging.EncounteredError) { return; } this.CreateNewGroupRows(parentTypeString, parentId, orderedItems); if (removeUsedRows) { this.RemoveUsedGroupRows(); } }
private string CombineTypeAndId(ComplexReferenceParentType type, string id) { return String.Format("{0}:{1}", type.ToString(), id); }