public override TR ResolveRepository <TR>(TUnitOfWork uow) { if (!SupportedRepositoryTypes.Contains(typeof(TR))) { return(null); } var repository = uow.GetPluginEntry(this) as TRepository; if (repository == null) { repository = CreateRepository(); uow.SetPluginEntry(this, repository); } // ReSharper disable once SuspiciousTypeConversion.Global // ReSharper disable once PossibleInvalidCastException return((TR)(object)repository); }
public override TR ResolveRepository <TR>(TUnitOfWork uow) { if (!SupportedRepositoryTypes.Contains(typeof(TR))) { return(null); } var entry = uow.GetPluginEntry(this); Debug.Assert(entry != null, "Snapshot reference should be registered on unit of work init."); if (entry is ImmutableDictionary <TKey, TEntity> dataSnapshot) { // ReSharper disable once AssignNullToNotNullAttribute entry = CreateRepository(dataSnapshot); uow.SetPluginEntry(this, entry); } // ReSharper disable once SuspiciousTypeConversion.Global // ReSharper disable once PossibleInvalidCastException return((TR)entry); }