Files
xDataService/Extensions/XDatabaseDescriptorExtensions.cs

95 lines
2.6 KiB
C#

using xCommons.Extensions;
using xDataService.Constants;
using xDataService.Models;
namespace xDataService.Extensions
{
public static class XDatabaseDescriptorExtensions
{
/// <summary>
/// Validate a Database Descriptor ...
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
public static bool IsValid(this XDatabaseDescriptor source)
{
//
var result =
!source.IsNull() &&
!source.Name.IsNullOrEmpty();
//
return result;
}
/// <summary>
/// Chack a Descriptor Has Provider or not ...
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
public static bool HasProvider(this XDatabaseDescriptor source)
{
//
var result =
source.IsValid() &&
source.Provider != XDbProviders.None;
//
return result;
}
/// <summary>
/// Check a Descriptor Has EF Core Context or not ...
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
public static bool HasContext(this XDatabaseDescriptor source)
{
//
var result =
source.IsValid() &&
source.HasProvider() &&
source.Provider != XDbProviders.MongoDB &&
!source.Context.IsNull();
//
return result;
}
/// <summary>
/// Check a Descriptor Has Repositories or not ...
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
public static bool HasRepositories(this XDatabaseDescriptor source)
{
//
var result =
source.IsValid() &&
source.HasProvider() &&
!source.Repositories.IsNull() &&
source.Repositories.HasChild();
//
return result;
}
/// <summary>
/// Check a Descriptor Has MongoDB Convention Packs ...
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
public static bool HasConventionPacks(this XDatabaseDescriptor source)
{
//
var result =
source.IsValid() &&
source.HasProvider() &&
source.Provider == XDbProviders.MongoDB &&
!source.ConventionPacks.IsNull();
//
return result;
}
}
}