using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using UnivateProperties_API.Containers.Users; using UnivateProperties_API.Context; using UnivateProperties_API.Model.Users; namespace UnivateProperties_API.Repository.Users { public class AgentRepository : IRepository { private readonly DataContext _dbContext; public AgentRepository(DataContext dbContext) { _dbContext = dbContext; } public List Get(Func where) { return _dbContext.Agents.Where(where).ToList(); } public List GetAll() { return _dbContext.Agents.Include("User").ToList(); } public Agent GetDetailed(Func first) { var item = _dbContext.Agents.FirstOrDefault(first); //AgentRepository account = new AgentRepository(_dbContext); //item = GetDetailedObject(item, account); return item; } public void Insert(Agent item) { item.Id = NewId(); item.User.Role = Role.Agent; if (_dbContext.Agents.Any(a => a.AgencyId == null)) { item.AgencyId = 10; } _dbContext.Add(item); Save(); } public void Insert(IEnumerable item) { int id = NewId(); foreach (var i in item) { i.Id = id; _dbContext.Add(i); id += 1; } Save(); } public void Remove(Agent item) { var i = _dbContext.Agents.Find(item); _dbContext.Agents.Remove(i); Save(); } public void Remove(IEnumerable items) { foreach (var item in items) { Agent i = _dbContext.Agents.Find(item); _dbContext.Agents.Remove(i); } Save(); } public void RemoveAtId(int item) { var i = _dbContext.Agents.Find(item); _dbContext.Agents.Remove(i); Save(); } public void Update(Agent item) { _dbContext.Entry(item).State = EntityState.Modified; Save(); } public void Save() { _dbContext.SaveChanges(); } public List GetDetailedAll() { // TODO: GetDetailed throw new NotImplementedException(); } public int NewId() { int id = 0; if (_dbContext.Agents.Count() > 0) { id = _dbContext.Agents.Max(x => x.Id); } id += 1; return id; } } }