public override Boolean Merge(Operation operation) { if (!CanMerge) { return(false); } ExtraOperation other = operation as ExtraOperation; if (other == null) { return(false); } if (other.ExtraType != this.ExtraType) { return(false); } foreach (ExtraFile file in other.Files) { if (!this.Files.Contains(file)) { this.Files.Add(file); } } return(true); }
private static Operation FromElementImpl(Group parent, XmlElement operationElement) { switch (operationElement.Name) { case "patch": return(new ResPatchOperation(parent, operationElement)); case "file": return(new FileOperation(parent, operationElement)); case "directory": return(new DirectoryOperation(parent, operationElement)); case "extra": return(ExtraOperation.Create(parent, operationElement)); case "cursorScheme": return(new CursorSchemeOperation(parent, operationElement)); case "systemParameter": return(new SystemParameterOperation(parent, operationElement)); case "fileType": return(new FileTypeOperation(parent, operationElement)); case "registry": return(new RegistryOperation(parent, operationElement)); case "program": return(new ProgramOperation(parent, operationElement)); case "uxtheme": return(new UXThemeOperation(parent, operationElement)); case "uninstallation": return(new UninstallationOperation(parent, operationElement)); case "clearIconCache": return(new ClearIconCacheOperation(parent, operationElement)); default: return(null); } }