Esempio n. 1
0
 public static bool TryRedactPiiLocString(LocalizedString original, PiiMap piiMap, out LocalizedString redactedLocString)
 {
     if (original.FormatParameters != null)
     {
         object[]          array     = original.FormatParameters.ToArray <object>();
         IEnumerable <int> piiParams = SuppressingPiiData.GetPiiParams(original.FullId, array);
         bool flag = false;
         foreach (int num in piiParams)
         {
             string value = null;
             string key   = null;
             if (array[num] is LocalizedString)
             {
                 flag      |= SuppressingPiiData.TryRedactPiiLocString((LocalizedString)array[num], piiMap, out redactedLocString);
                 array[num] = redactedLocString;
             }
             else if (array[num] is ADObjectId)
             {
                 flag       = true;
                 array[num] = SuppressingPiiData.Redact((ADObjectId)array[num], out value, out key);
             }
             else if (array[num] != null)
             {
                 flag       = true;
                 array[num] = SuppressingPiiData.Redact(array[num].ToString(), out value, out key);
             }
             if (piiMap != null && !string.IsNullOrEmpty(value))
             {
                 piiMap[key] = value;
             }
         }
         redactedLocString = (flag ? original.RecreateWithNewParams(array) : original);
         return(flag);
     }
     redactedLocString = original;
     return(false);
 }