using MongoDB.Driver;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Linq.Expressions;
using MongoDbGenericRepository.Models;
using System.Linq;
namespace MongoDbGenericRepository
{
///
/// The base Repository, it is meant to be inherited from by your custom custom MongoRepository implementation.
/// Its constructor must be given a connection string and a database name.
///
public abstract partial class BaseMongoRepository : ReadOnlyMongoRepository, IBaseMongoRepository
{
#region Index Management
///
public async Task CreateTextIndexAsync(Expression> field, IndexCreationOptions indexCreationOptions = null, string partitionKey = null)
where TDocument : IDocument
{
return await CreateTextIndexAsync(field, indexCreationOptions, partitionKey);
}
///
public async Task CreateAscendingIndexAsync(Expression> field, IndexCreationOptions indexCreationOptions = null, string partitionKey = null) where TDocument : IDocument
{
return await CreateAscendingIndexAsync(field, indexCreationOptions, partitionKey);
}
///
public async Task CreateDescendingIndexAsync(Expression> field, IndexCreationOptions indexCreationOptions = null, string partitionKey = null)
where TDocument : IDocument
{
return await CreateDescendingIndexAsync(field, indexCreationOptions, partitionKey);
}
///
public async Task CreateHashedIndexAsync(Expression> field, IndexCreationOptions indexCreationOptions = null, string partitionKey = null)
where TDocument : IDocument
{
return await CreateHashedIndexAsync(field, indexCreationOptions, partitionKey);
}
///
public async Task CreateCombinedTextIndexAsync(IEnumerable>> fields, IndexCreationOptions indexCreationOptions = null, string partitionKey = null) where TDocument : IDocument
{
return await CreateCombinedTextIndexAsync(fields, indexCreationOptions, partitionKey);
}
///
public async Task DropIndexAsync(string indexName, string partitionKey = null)
where TDocument : IDocument
{
await DropIndexAsync(indexName, partitionKey);
}
///
public async Task> GetIndexesNamesAsync(string partitionKey = null)
where TDocument : IDocument
{
return await GetIndexesNamesAsync(partitionKey);
}
#endregion Index Management
}
}