示例#1
0
        /// <summary>
        /// Returns <paramref name="propertyDefinition"/> property value from Exchange storage <paramref name="item"/>.
        /// If property value not reachable, returns default <paramref name="propertyDefinition"/> value.
        /// </summary>
        /// <typeparam name="T">Return value type.</typeparam>
        /// <param name="item"><see cref="Exchange.Item"/> instance.</param>
        /// <param name="propertyDefinition"><see cref="Exchange.PropertyDefinition"/> instance.</param>
        /// <returns><paramref name="propertyDefinition"/> value from <paramref name="item"/> if value reachable,
        /// dafault <paramref name="propertyDefinition"/> value otherwise.</returns>
        public static T SafeGetValue <T>(this Exchange.Item item, Exchange.PropertyDefinition propertyDefinition)
        {
            T value;

            item.TryGetProperty(propertyDefinition, out value);
            return(value);
        }
示例#2
0
        /// <summary>
        /// Returns activity instance.
        /// </summary>
        /// <param name="context">Synchronization context.</param>
        /// <param name="exchangeItem">Sync element in external storage.</param>
        /// <param name="localItem">Sync element in local storage.</param>
        protected Entity GetActivity(SyncContext context, Exchange.Item exchangeItem, ref LocalItem localItem)
        {
            Entity instance;
            Object localId;

            if (exchangeItem.TryGetProperty(ExchangeUtilityImpl.LocalIdProperty, out localId))
            {
                context.LogInfo(SyncAction.None, SyncDirection.DownloadAndUpload,
                                "GetActivity use localId action {0} for {1}",
                                Action, GetDisplayName());
                instance = GetSyncedActivityWithChangedRemoteId(context, exchangeItem, Guid.Parse(localId.ToString()), localItem);
            }
            else
            {
                context.LogInfo(SyncAction.None, SyncDirection.DownloadAndUpload,
                                "GetActivity not use localId action {0} for {1}",
                                Action, GetDisplayName());
                instance = GetEntityInstance <Entity>(context, localItem, "Activity");
            }
            return(instance);
        }