// ====================================== // Author: Ebenezer Monney // Email: info@ebenmonney.com // Copyright (c) 2017 www.ebenmonney.com // // ==> Gun4Hire: contact@ebenmonney.com // ====================================== using DAL.Repositories.Interfaces; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Text; using System.Threading.Tasks; namespace DAL.Repositories { public class Repository : IRepository where TEntity : class { protected readonly DbContext _context; protected readonly DbSet _entities; public Repository(DbContext context) { _context = context; _entities = context.Set(); } public virtual void Add(TEntity entity) { _entities.Add(entity); } public virtual void AddRange(IEnumerable entities) { _entities.AddRange(entities); } public virtual void Update(TEntity entity) { _entities.Update(entity); } public virtual void UpdateRange(IEnumerable entities) { _entities.UpdateRange(entities); } public virtual void Remove(TEntity entity) { _entities.Remove(entity); } public virtual void RemoveRange(IEnumerable entities) { _entities.RemoveRange(entities); } public virtual int Count() { return _entities.Count(); } public virtual IEnumerable Find(Expression> predicate) { return _entities.Where(predicate); } public virtual TEntity GetSingleOrDefault(Expression> predicate) { return _entities.SingleOrDefault(predicate); } public virtual TEntity Get(int id) { return _entities.Find(id); } public virtual IEnumerable GetAll() { return _entities.ToList(); } } }