52 lines
1.6 KiB
C#
52 lines
1.6 KiB
C#
using Gremlin_BlazorServer.Data.DBClasses;
|
|
using Gremlin_BlazorServer.Data.EntityClasses;
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
namespace Gremlin_BlazorServer.Services
|
|
{
|
|
public class GenericController
|
|
{
|
|
private readonly GremlinDb gremlinDb = new();
|
|
|
|
public IList<TResult> GetAll<TResult>() where TResult : class, IMetadata
|
|
{
|
|
return gremlinDb.Set<TResult>().ToList();
|
|
}
|
|
|
|
public IList<TResult> GetAll<TResult>(string include) where TResult : class, IMetadata
|
|
{
|
|
return gremlinDb.Set<TResult>().Include(include).ToList();
|
|
}
|
|
|
|
public IList<TResult> GetAll<TResult>(Predicate<TResult> search) where TResult : class, IMetadata
|
|
{
|
|
return gremlinDb.Set<TResult>().AsEnumerable().Where(t => search(t)).ToList();
|
|
}
|
|
|
|
public IList<TResult> GetAll<TResult>(Predicate<TResult> search, string include) where TResult : class, IMetadata
|
|
{
|
|
return gremlinDb.Set<TResult>().Include(include).AsEnumerable().Where(t => search(t)).ToList();
|
|
}
|
|
|
|
public TResult? Get<TResult>(Predicate<TResult> search) where TResult : class, IMetadata
|
|
{
|
|
return gremlinDb.Set<TResult>().AsEnumerable().FirstOrDefault(t => search(t));
|
|
}
|
|
|
|
public TResult? Get<TResult>(Predicate<TResult> search, string include) where TResult : class, IMetadata
|
|
{
|
|
return gremlinDb.Set<TResult>().Include(include).AsEnumerable().FirstOrDefault(t => search(t));
|
|
}
|
|
|
|
public TResult? GetLast<TResult>() where TResult : class, IMetadata
|
|
{
|
|
return gremlinDb.Set<TResult>().AsEnumerable().Last();
|
|
}
|
|
|
|
public bool Insert<T>(T entity) where T : class, IMetadata
|
|
{
|
|
gremlinDb.Set<T>().Add(entity);
|
|
return (gremlinDb.SaveChanges() > 0);
|
|
}
|
|
}
|
|
} |