コード例 #1
0
        /// <summary>
        /// Gets the provider.
        /// </summary>
        /// <param name="principal">The principal.</param>
        /// <param name="syncProviderType">Type of the sync provider.</param>
        /// <returns></returns>
        public static GenericRemoteSyncProvider <EntityObjectHierarchy> GetProvider(int principalId, eSyncProviderType syncProviderType)
        {
            GenericRemoteSyncProvider <EntityObjectHierarchy> retVal;
            string key = GetUniqueProviderKey(principalId, syncProviderType);

            lock (_lockObject)
            {
                if (!_activeSyncPorviders.TryGetValue(key, out retVal))
                {
                    switch (syncProviderType)
                    {
                    case eSyncProviderType.Appointment:
                        retVal = CalendarEventSyncProvider.CreateInstance(principalId);
                        break;
                    }

                    if (retVal != null)
                    {
                        _activeSyncPorviders.Add(key, retVal);
                    }
                }
            }

            return(retVal);
        }