public void FromPropertyValues(IDictionary <Microsoft.Exchange.Data.PropertyDefinition, int> propertyIndices, IList values, IEvent right)
 {
     SeriesIdTranslationRule.FromLeftToRight(right, delegate(out string value)
     {
         int index;
         object obj;
         if (propertyIndices.TryGetValue(SeriesIdTranslationRule.CalendarItemTypeProperty, out index) && (obj = values[index]) is CalendarItemType)
         {
             if ((CalendarItemType)obj == CalendarItemType.Single)
             {
                 if (propertyIndices.TryGetValue(SeriesIdTranslationRule.NprSeriesId, out index) && values[index] is string)
                 {
                     value = (string)values[index];
                     return(true);
                 }
             }
             else if (propertyIndices.TryGetValue(SeriesIdTranslationRule.CleanGlobalObjectId, out index) && values[index] is byte[])
             {
                 value = new GlobalObjectId((byte[])values[index]).ToString();
                 return(true);
             }
         }
         value = null;
         return(false);
     });
 }
 public void FromLeftToRightType(ICalendarItemBase left, IEvent right)
 {
     SeriesIdTranslationRule.FromLeftToRight(right, delegate(out string value)
     {
         return(this.TryGetValue(left, out value));
     });
 }