// Token: 0x06006EAB RID: 28331 RVA: 0x001FC55C File Offset: 0x001FA75C private static void CreateMissingBamlTreeNode(BamlLocalizationDictionary dictionary, BamlTreeUpdater.BamlTreeUpdateMap treeMap) { BamlLocalizationDictionaryEnumerator enumerator = dictionary.GetEnumerator(); while (enumerator.MoveNext()) { BamlLocalizableResourceKey key = enumerator.Key; BamlLocalizableResource value = enumerator.Value; if (treeMap.MapKeyToBamlTreeNode(key) == null) { if (key.PropertyName == "$Content") { if (treeMap.MapUidToBamlTreeElementNode(key.Uid) == null) { BamlStartElementNode bamlStartElementNode = new BamlStartElementNode(treeMap.Resolver.ResolveAssemblyFromClass(key.ClassName), key.ClassName, false, false); bamlStartElementNode.AddChild(new BamlDefAttributeNode("Uid", key.Uid)); BamlTreeUpdater.TryAddContentPropertyToNewElement(treeMap, bamlStartElementNode); bamlStartElementNode.AddChild(new BamlEndElementNode()); treeMap.AddBamlTreeNode(key.Uid, key, bamlStartElementNode); } } else { BamlTreeNode node; if (key.PropertyName == "$LiteralContent") { node = new BamlLiteralContentNode(value.Content); } else { node = new BamlPropertyNode(treeMap.Resolver.ResolveAssemblyFromClass(key.ClassName), key.ClassName, key.PropertyName, value.Content, BamlAttributeUsage.Default); } treeMap.AddBamlTreeNode(null, key, node); } } } }
// Token: 0x06006EAC RID: 28332 RVA: 0x001FC674 File Offset: 0x001FA874 private static bool ApplyChangeToBamlTree(BamlLocalizableResourceKey key, BamlLocalizableResource resource, BamlTreeUpdater.BamlTreeUpdateMap treeMap) { if (resource == null || resource.Content == null || !resource.Modifiable) { return(true); } if (!treeMap.LocalizationDictionary.Contains(key) && !treeMap.IsNewBamlTreeNode(key)) { return(true); } BamlTreeNode bamlTreeNode = treeMap.MapKeyToBamlTreeNode(key); Invariant.Assert(bamlTreeNode != null); BamlNodeType nodeType = bamlTreeNode.NodeType; if (nodeType != BamlNodeType.StartElement) { if (nodeType != BamlNodeType.Property) { if (nodeType == BamlNodeType.LiteralContent) { BamlLiteralContentNode bamlLiteralContentNode = (BamlLiteralContentNode)bamlTreeNode; bamlLiteralContentNode.Content = BamlResourceContentUtil.UnescapeString(resource.Content); if (bamlLiteralContentNode.Parent == null) { BamlTreeNode bamlTreeNode2 = treeMap.MapUidToBamlTreeElementNode(key.Uid); if (bamlTreeNode2 == null) { return(false); } bamlTreeNode2.AddChild(bamlLiteralContentNode); } } } else { BamlPropertyNode bamlPropertyNode = (BamlPropertyNode)bamlTreeNode; bamlPropertyNode.Value = BamlResourceContentUtil.UnescapeString(resource.Content); if (bamlPropertyNode.Parent == null) { BamlStartElementNode bamlStartElementNode = treeMap.MapUidToBamlTreeElementNode(key.Uid); if (bamlStartElementNode == null) { return(false); } bamlStartElementNode.InsertProperty(bamlTreeNode); } } } else { string b = null; if (treeMap.LocalizationDictionary.Contains(key)) { b = treeMap.LocalizationDictionary[key].Content; } if (resource.Content != b) { BamlTreeUpdater.ReArrangeChildren(key, bamlTreeNode, resource.Content, treeMap); } } return(true); }