/// <summary> /// Создает экземпляр провайдера для заданного пользователя /// </summary> /// <param name="principalId">The principal id.</param> /// <returns></returns> public static CalendarEventSyncProvider CreateInstance(int principalId) { CalendarEventSyncProvider retVal = null; lock (_lock) { SyncId replicaId = SyncMetadataStore.FindReplicaIdByPrincipalId(principalId); if (replicaId == null) { //генерируем новый replica id replicaId = new SyncId(Guid.NewGuid()); //Создаем новое хранилище метаданных реплики SyncMetadataStore.CreateStore(replicaId, principalId); } retVal = new CalendarEventSyncProvider(replicaId); retVal.InitializeMetaDataStore(); } return(retVal); }