using System; using System.Collections.Generic; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using MongoDB.Bson.Serialization.Conventions; using xDataService.Configuration; using xDataService.Constants; using xDataService.Db; using xDataService.Models; namespace xDataService.Interfaces { /// /// Data Base Descriptor ... /// public interface IXDatabaseDescriptor { // #region Props ... /// /// Database Name ... /// /// string Name { get; set; } /// /// Database Provider ... /// /// XDbProviders Provider { get; set; } /// /// Db Context Type ... /// /// Type Context { get; set; } /// /// Database Connecion String ... /// /// string ConnectionString { get; set; } /// /// Data Service Configuration ... /// /// XDataBaseConfiguration Configuration { get; set; } /// /// Repositories Descriptions ... /// /// IList Repositories { get; set; } /// /// Mongo Convention Packs ... /// ConventionPack ConventionPacks { get; set; } /// /// DbContext Options Builder ... /// /// Action OptionsBuilder { get; set; } #endregion // #region Configure ... /// /// Configure Database Descriptor using Registered Services ... /// /// void Configure( IServiceCollection services ); /// /// Configure Database Descriptor using IConfiguration ... /// /// void Configure( IConfiguration configuration ); /// /// Configure Database Descriptor using Database Configuration ... /// /// void Configure( XDataBaseConfiguration configuration ); /// /// Configure Database Descriptor using Provider and Connection String ... /// /// /// void Configure( XDbProviders provider, string connectionString ); #endregion } /// /// Data Base Descriptor ... /// /// public interface IXDatabaseDescriptor : IXDatabaseDescriptor where TContext : XDbContext { } }