using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using ViraScraper.Models; namespace ViraScraper.Repositories { public class RepositoryBase : IRepositoryBase where T : class { protected readonly ScrapDbContext _context; public RepositoryBase(ScrapDbContext context) { _context = context; } public IQueryable GetAll() { return _context.Set().AsNoTracking(); } public IQueryable GetAll(Expression> expression) { return _context.Set().Where(expression).AsNoTracking(); } public async void Insert(T entity) { await _context.AddAsync(entity); await _context.SaveChangesAsync(); } public async void InsertRang(IEnumerable entitys) { await _context.AddRangeAsync(entitys); await _context.SaveChangesAsync(); } public async void InsertS(T entity) { var ent = _context.Entry(entity); if (ent == null) { await _context.AddAsync(entity); await _context.SaveChangesAsync(); } } public async void InsertSRang(IEnumerable entitys) { foreach (var entity in entitys) { var ent = _context.Set().AsNoTracking().FirstOrDefault(e => e.Equals(entity)); if (ent == null) { await _context.AddAsync(entity); } } await _context.SaveChangesAsync(); } public async void Remove(T entity) { var ent = _context.Entry(entity); ent.State = EntityState.Detached; ent.State = EntityState.Deleted; await _context.SaveChangesAsync(); } public async void Update(T entity) { var ent = _context.Entry(entity); ent.State = EntityState.Detached; ent.State = EntityState.Modified; await _context.SaveChangesAsync(); } } }