using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using UnivateProperties_API.Context; using UnivateProperties_API.Model.Users; namespace UnivateProperties_API.Repository.Users { public class AgencyRepository : IRepository { private readonly DataContext _dbContext; public AgencyRepository(DataContext dbContext) { _dbContext = dbContext; } public List Get(Func where) { return _dbContext.Agencies.Where(where).ToList(); } public List GetAll() { return _dbContext.Agencies.ToList(); } public Agency GetDetailed(Func first) { var item = _dbContext.Agencies.FirstOrDefault(first); AgencyRepository account = new AgencyRepository(_dbContext); item = GetDetailedObject(item, account); return item; } private Agency GetDetailedObject(Agency item, AgencyRepository repo) { item = repo.GetDetailed(x => x.Id == item.Id); return item; } public void Insert(Agency item) { _dbContext.Add(item); Save(); } public void Insert(IEnumerable item) { _dbContext.Add(item); Save(); } public void Remove(Agency item) { var i = _dbContext.Agencies.Find(item); _dbContext.Agencies.Remove(i); Save(); } public void Remove(IEnumerable items) { foreach (var item in items) { Agency i = _dbContext.Agencies.Find(item); _dbContext.Agencies.Remove(i); } Save(); } public void RemoveAtId(int item) { var i = _dbContext.Agencies.Find(item); _dbContext.Agencies.Remove(i); Save(); } public void Update(Agency item) { _dbContext.Entry(item).State = EntityState.Modified; Save(); } public void Save() { _dbContext.SaveChanges(); } public List GetDetailedAll() { //TODO: GetDetailed Agency throw new NotImplementedException(); } } }