protected override IEnumerable <Event> ReadQueryResults(object[][] rows, Dictionary <Microsoft.Exchange.Data.PropertyDefinition, int> propertyIndices) { List <Event> list = new List <Event>(); Dictionary <string, Event> dictionary = new Dictionary <string, Event>(); foreach (object[] values in rows) { Event @event = this.Translator.ConvertToEntity(propertyIndices, values, base.Session); list.Add(@event); object obj; if (@event.Type == EventType.SeriesMaster && this.TryGetPropertyFromPropertyIndices(propertyIndices, values, CalendarItemBaseSchema.SeriesId, out obj) && !dictionary.ContainsKey(@event.SeriesId)) { dictionary.Add(@event.SeriesId, @event); } } for (int j = 0; j < list.Count; j++) { Event event2 = list[j]; Event master2; if (event2.Type == EventType.Exception && dictionary.TryGetValue(event2.SeriesId, out master2)) { IList <string> overridenProperties = new List <string>(); object obj2; if (this.TryGetPropertyFromPropertyIndices(propertyIndices, rows[j], CalendarItemInstanceSchema.PropertyChangeMetadataRaw, out obj2)) { PropertyChangeMetadata metadata = PropertyChangeMetadata.Parse((byte[])obj2); overridenProperties = EventTranslator.Instance.GetOverridenProperties(metadata); } master2.CopyMasterPropertiesTo(event2, false, (Event occurrence, Event master, Microsoft.Exchange.Entities.DataModel.PropertyBags.PropertyDefinition property) => master.IsPropertySet(property) && !overridenProperties.Contains(property.Name), false); } } return(list); }
public DefaultStoragePropertyAccessor(StorePropertyDefinition property, bool forceReadonly = false) : base(forceReadonly || (property.PropertyFlags & PropertyFlags.ReadOnly) == PropertyFlags.ReadOnly, null, new StorePropertyDefinition[] { property }) { base.PropertyChangeMetadataGroup = PropertyChangeMetadata.GetGroupForProperty(property); this.Property = property; }
public IList <string> Convert(PropertyChangeMetadata value) { if (value == null) { throw new ExArgumentNullException("value"); } IEnumerable <string> source = from overriddenGroup in this.GetOverriddenGroups(value) select this.propertyMapping.Convert(overriddenGroup) into properties where properties != null from property in properties select property.Name; return(source.ToList <string>()); }
internal IList <string> GetOverridenProperties(PropertyChangeMetadata metadata) { return(this.propertyChangeMetadataConverter.Convert(metadata)); }
protected virtual IEnumerable <PropertyChangeMetadata.PropertyGroup> GetOverriddenGroups(PropertyChangeMetadata value) { return(value.GetOverriddenGroups()); }