public static EasyAccessRepositoryAdapter <TEntityId, TEntityVersion, TEntity, TContext> Create <TEntityId, TEntityVersion, TEntity, TContext>( IVersionAwareReadOnlyEntityRepository <TEntityId, TEntityVersion, TEntity, TContext> readRepository, IBatchWriteOnlyEntityRepository <TEntityId, TEntityVersion, TEntity, TContext> writeRepository, ISynchronizationContextFactory <TContext> contextFactory) { return(new EasyAccessRepositoryAdapter <TEntityId, TEntityVersion, TEntity, TContext>(readRepository, writeRepository, contextFactory)); }
public ContextCreatingSynchronizerDecorator( IPartialSynchronizer <TAtypeEntityId, TAtypeEntityVersion, TBtypeEntityId, TBtypeEntityVersion, TContext> inner, ISynchronizationContextFactory <TContext> contextFactory) { if (inner == null) { throw new ArgumentNullException(nameof(inner)); } if (contextFactory == null) { throw new ArgumentNullException(nameof(contextFactory)); } _inner = inner; _contextFactory = contextFactory; }
public void AboutSynchronizationContext() { var d = new Dictionary <int, int>(); ISynchronizationContextFactory synchronizationContextFactory = FILL_ME_IN; var synchronizationContext = synchronizationContextFactory.Create(); var threadPump = new TaskRunner(synchronizationContext, (_) => (synchronizationContext as IConsumerSideSynchronizationContext)?.Complete(), // Run continuations and propagate any exceptions (Task task) => { (synchronizationContext as IConsumerSideSynchronizationContext)?.RunOnCurrentThread(); task.GetAwaiter().GetResult(); }); threadPump.Run(async() => await AboutThreadSynchronizationHelper.PerformTaskAsync(d).ConfigureAwait(false)); Assert.True(d.Count == 1); }
public static EasyAccessRepositoryAdapter <TEntityId, TEntityVersion, TEntity, TContext> Create <TEntityId, TEntityVersion, TEntity, TContext> ( IEntityRepository <TEntityId, TEntityVersion, TEntity, TContext> repository, ISynchronizationContextFactory <TContext> contextFactory) { return(new EasyAccessRepositoryAdapter <TEntityId, TEntityVersion, TEntity, TContext> (repository, contextFactory)); }
public RunOnUIThread(ISynchronizationContextFactory factory) { this.factory = factory; }