Table of Contents

Class SupportMailPositionCollection

Namespace
Tharga.Team.MongoDB
Assembly
Tharga.Team.MongoDB.dll

Collection of mailbox read positions. Default collection name SupportMailPosition.

public class SupportMailPositionCollection : DiskRepositoryCollectionBase<SupportMailPositionEntity>, ISupportMailPositionCollection, IDiskRepositoryCollection<SupportMailPositionEntity>, IDiskRepositoryCollection<SupportMailPositionEntity, ObjectId>, IRepositoryCollection<SupportMailPositionEntity, ObjectId>, IReadOnlyRepositoryCollection<SupportMailPositionEntity, ObjectId>, IRepositoryCollection, IReadOnlyRepositoryCollection
Inheritance
RepositoryCollectionBase
RepositoryCollectionBase<SupportMailPositionEntity, ObjectId>
DiskRepositoryCollectionBase<SupportMailPositionEntity, ObjectId>
DiskRepositoryCollectionBase<SupportMailPositionEntity>
SupportMailPositionCollection
Implements
IDiskRepositoryCollection<SupportMailPositionEntity>
IDiskRepositoryCollection<SupportMailPositionEntity, ObjectId>
IRepositoryCollection<SupportMailPositionEntity, ObjectId>
IReadOnlyRepositoryCollection<SupportMailPositionEntity, ObjectId>
IRepositoryCollection
IReadOnlyRepositoryCollection
Inherited Members
DiskRepositoryCollectionBase<SupportMailPositionEntity, ObjectId>.AddAsync(SupportMailPositionEntity, IClientSessionHandle)
DiskRepositoryCollectionBase<SupportMailPositionEntity, ObjectId>.TryAddAsync(SupportMailPositionEntity, IClientSessionHandle)
DiskRepositoryCollectionBase<SupportMailPositionEntity, ObjectId>.AddOrReplaceAsync(SupportMailPositionEntity, IClientSessionHandle)
DiskRepositoryCollectionBase<SupportMailPositionEntity, ObjectId>.ReplaceOneAsync(SupportMailPositionEntity, OneOption<SupportMailPositionEntity>, IClientSessionHandle)
DiskRepositoryCollectionBase<SupportMailPositionEntity, ObjectId>.ReplaceOneAsync(SupportMailPositionEntity, FilterDefinition<SupportMailPositionEntity>, OneOption<SupportMailPositionEntity>, IClientSessionHandle)
DiskRepositoryCollectionBase<SupportMailPositionEntity, ObjectId>.UpdateOneAsync(ObjectId, UpdateDefinition<SupportMailPositionEntity>, IClientSessionHandle)
DiskRepositoryCollectionBase<SupportMailPositionEntity, ObjectId>.UpdateOneAsync(FilterDefinition<SupportMailPositionEntity>, UpdateDefinition<SupportMailPositionEntity>, OneOption<SupportMailPositionEntity>, IClientSessionHandle)
DiskRepositoryCollectionBase<SupportMailPositionEntity, ObjectId>.UpdateManyAsync(FilterDefinition<SupportMailPositionEntity>, UpdateDefinition<SupportMailPositionEntity>, IClientSessionHandle)
DiskRepositoryCollectionBase<SupportMailPositionEntity, ObjectId>.DeleteOneAsync(ObjectId, IClientSessionHandle)
DiskRepositoryCollectionBase<SupportMailPositionEntity, ObjectId>.DeleteOneAsync(FilterDefinition<SupportMailPositionEntity>, OneOption<SupportMailPositionEntity>, IClientSessionHandle)
DiskRepositoryCollectionBase<SupportMailPositionEntity, ObjectId>.DeleteManyAsync(FilterDefinition<SupportMailPositionEntity>, IClientSessionHandle)
DiskRepositoryCollectionBase<SupportMailPositionEntity, ObjectId>.GetCollection()
DiskRepositoryCollectionBase<SupportMailPositionEntity, ObjectId>.DropCollectionAsync()
DiskRepositoryCollectionBase<SupportMailPositionEntity, ObjectId>.GetDirtyAsync()
DiskRepositoryCollectionBase<SupportMailPositionEntity, ObjectId>.GetFailedIndices()
DiskRepositoryCollectionBase<SupportMailPositionEntity, ObjectId>.DropEmptyAsync(IMongoCollection<SupportMailPositionEntity>)
DiskRepositoryCollectionBase<SupportMailPositionEntity, ObjectId>.FetchSize
RepositoryCollectionBase<SupportMailPositionEntity, ObjectId>._mongoDbServiceFactory
RepositoryCollectionBase<SupportMailPositionEntity, ObjectId>._logger
RepositoryCollectionBase<SupportMailPositionEntity, ObjectId>._databaseContext
RepositoryCollectionBase<SupportMailPositionEntity, ObjectId>._mongoDbService
RepositoryCollectionBase<SupportMailPositionEntity, ObjectId>.InitAsync(IMongoCollection<SupportMailPositionEntity>)
RepositoryCollectionBase<SupportMailPositionEntity, ObjectId>.ProtectedCollectionName
RepositoryCollectionBase<SupportMailPositionEntity, ObjectId>.CollectionName
RepositoryCollectionBase<SupportMailPositionEntity, ObjectId>.DatabasePart
RepositoryCollectionBase<SupportMailPositionEntity, ObjectId>.ConfigurationName
RepositoryCollectionBase<SupportMailPositionEntity, ObjectId>.AutoClean
RepositoryCollectionBase<SupportMailPositionEntity, ObjectId>.CleanOnStartup
RepositoryCollectionBase<SupportMailPositionEntity, ObjectId>.CreateCollectionStrategy
RepositoryCollectionBase<SupportMailPositionEntity, ObjectId>.Indices
RepositoryCollectionBase<SupportMailPositionEntity, ObjectId>.CoreIndices
RepositoryCollectionBase<SupportMailPositionEntity, ObjectId>.Types
RepositoryCollectionBase.ConfigurationName
RepositoryCollectionBase.ActionEvent

Remarks

The unique index on Key is what keeps it to one record per deployment: the position is written on every poll, and an upsert without it would eventually leave several rows disagreeing about where the mailbox has been read to.

Constructors

SupportMailPositionCollection(IMongoDbServiceFactory, ILogger<SupportMailPositionCollection>, IOptions<ThargaTeamOptions>)

public SupportMailPositionCollection(IMongoDbServiceFactory mongoDbServiceFactory, ILogger<SupportMailPositionCollection> logger, IOptions<ThargaTeamOptions> options = null)

Parameters

mongoDbServiceFactory IMongoDbServiceFactory
logger ILogger<SupportMailPositionCollection>
options IOptions<ThargaTeamOptions>

Properties

CollectionName

public override string CollectionName { get; }

Property Value

string

Indices

public override IEnumerable<CreateIndexModel<SupportMailPositionEntity>> Indices { get; }

Property Value

IEnumerable<CreateIndexModel<SupportMailPositionEntity>>