using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using UnivateProperties_API.Context; using UnivateProperties_API.Model.Banks; namespace UnivateProperties_API.Repository.Banks { public class BankAccountRepository : IRepository, IRepository { private readonly DataContext _dbContext; public BankAccountRepository(DataContext dbContext) { _dbContext = dbContext; } public List Get(Func where) { return _dbContext.Banks.Where(where).ToList(); } public List Get(Func where) { return _dbContext.BankAccounts.Where(where).ToList(); } public List GetAll() { return _dbContext.Banks.ToList(); } public Bank GetDetailed(Func first) { var item = _dbContext.Banks.FirstOrDefault(first); return item; } public BankAccount GetDetailed(Func first) { var item = _dbContext.BankAccounts.FirstOrDefault(first); return item; } public List GetDetailedAll() { return GetAll(); } public void Insert(Bank item) { item.Id = NewBankId(); _dbContext.Add(item); Save(); } public void Insert(IEnumerable items) { int id = NewBankId(); foreach (var item in items) { item.Id = id; _dbContext.Add(item); id += 1; } Save(); } public void Insert(BankAccount item) { item.Id = NewId(); _dbContext.Add(item); Save(); } public void Insert(IEnumerable items) { int id = NewId(); foreach (var item in items) { item.Id = id; _dbContext.Add(item); id += 1; } Save(); } public void Remove(Bank item) { var i = _dbContext.Banks.Find(item); _dbContext.Banks.Remove(i); Save(); } public void Remove(IEnumerable items) { foreach (var item in items) { var i = _dbContext.Banks.Find(item); _dbContext.Banks.Remove(i); } Save(); } public void Remove(BankAccount item) { var i = _dbContext.BankAccounts.Find(item); _dbContext.BankAccounts.Remove(i); Save(); } public void Remove(IEnumerable items) { foreach (var item in items) { var i = _dbContext.BankAccounts.Find(item); _dbContext.BankAccounts.Remove(i); } Save(); } public void RemoveAtId(int item) { var i = _dbContext.Seasons.Find(item); _dbContext.Seasons.Remove(i); Save(); } public void Save() { _dbContext.SaveChanges(); } public void Update(Bank item) { _dbContext.Entry(item).State = EntityState.Modified; Save(); } public void Update(BankAccount item) { _dbContext.Entry(item).State = EntityState.Modified; Save(); } List IRepository.GetAll() { return _dbContext.BankAccounts.ToList(); } List IRepository.GetDetailedAll() { return _dbContext.BankAccounts.ToList(); } public int NewId() { int id = 0; if (_dbContext.BankAccounts.Count() > 0) { _dbContext.BankAccounts.Max(x => x.Id); } id += 1; return id; } public int NewBankId() { int id = 0; if (_dbContext.Banks.Count() > 0) { _dbContext.Banks.Max(x => x.Id); } id += 1; return id; } } }