Gremlin/Gremlin_BlazorServer/Services/GenericController.cs

41 lines
1.3 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));
}
}
}