public DataStoreMergedContainer.KeyEntry AddOrUpdateKey(string fullKeyName, bool isClusdb)
 {
     DataStoreMergedContainer.KeyEntry keyEntry = null;
     if (!this.Entries.TryGetValue(fullKeyName, out keyEntry) || keyEntry == null)
     {
         keyEntry = new DataStoreMergedContainer.KeyEntry(fullKeyName);
         this.Entries.Add(fullKeyName, keyEntry);
     }
     keyEntry.Update(isClusdb);
     return(keyEntry);
 }
示例#2
0
 internal bool IsLastLogPropertiesAreTheOnlyDifference(DataStoreDiffReport report)
 {
     if (report.CountKeysOnlyInClusdb == 0 && report.CountKeysOnlyInDxStore == 0 && report.CountKeysInClusdbAndDxStoreButPropertiesDifferent == 1)
     {
         DataStoreMergedContainer.KeyEntry keyEntry = report.KeysInBothButPropertiesMismatch.FirstOrDefault <DataStoreMergedContainer.KeyEntry>();
         if (keyEntry != null && Utils.IsEqual(keyEntry.Name, "\\ExchangeActiveManager\\LastLog", StringComparison.OrdinalIgnoreCase))
         {
             return(true);
         }
     }
     return(false);
 }
 // Token: 0x06000EB5 RID: 3765 RVA: 0x0003EDE8 File Offset: 0x0003CFE8
 public void Apply(bool isClusdb, XElement element, string fullKeyName = null)
 {
     if (string.IsNullOrEmpty(fullKeyName))
     {
         fullKeyName = element.Attribute("Name").Value;
     }
     DataStoreMergedContainer.KeyEntry keyEntry = this.Container.AddOrUpdateKey(fullKeyName, isClusdb);
     if (element.HasElements)
     {
         List <XElement> list = new List <XElement>();
         foreach (XElement xelement in element.Elements())
         {
             string localName = xelement.Name.LocalName;
             if (Utils.IsEqual(localName, "Key", StringComparison.OrdinalIgnoreCase))
             {
                 list.Add(xelement);
             }
             else if (Utils.IsEqual(localName, "Value", StringComparison.OrdinalIgnoreCase))
             {
                 string value  = xelement.Attribute("Name").Value;
                 string value2 = xelement.Attribute("Kind").Value;
                 string value3 = xelement.Value;
                 keyEntry.AddOrUpdateProperty(value, value3, value2, isClusdb);
             }
         }
         if (list.Count > 0)
         {
             foreach (XElement xelement2 in list)
             {
                 string value4       = xelement2.Attribute("Name").Value;
                 string fullKeyName2 = Path.Combine(fullKeyName, value4);
                 this.Apply(isClusdb, xelement2, fullKeyName2);
             }
         }
     }
 }