using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using UnivateProperties_API.Context; using UnivateProperties_API.Model.Region; namespace UnivateProperties_API.Repository.Region { public class ProvinceRepository : IRepository { private readonly DataContext dBContext; public ProvinceRepository(DataContext _dBContext) { dBContext = _dBContext; } public List Get(Func where) { return dBContext.Provinces.Where(where).ToList(); } public List GetAll() { return dBContext.Provinces.OrderBy(p => p.Description).ToList(); } public Province GetDetailed(Func first) { return dBContext.Provinces.FirstOrDefault(first); } public List GetDetailedAll() { //TODO: remove NotImplemented throw new NotImplementedException(); } public void Insert(Province 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(Province item) { dBContext.Provinces.Remove(item); Save(); } public void Remove(IEnumerable items) { foreach (var item in items) { dBContext.Provinces.Remove(item); } Save(); } public void RemoveAtId(int item) { var province = Get(x => x.Id == item).FirstOrDefault(); if (province != null) { dBContext.Provinces.Remove(province); Save(); } } public void Save() { dBContext.SaveChanges(); } public void Update(Province item) { dBContext.Entry(item).State = EntityState.Modified; Save(); } public int NewId() { int id = 0; if (dBContext.Provinces.Count() > 0) { id = dBContext.Provinces.Max(x => x.Id); } id += 1; return id; } } }