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 SuburbRepository : ISuburbRepository { private readonly DataContext dBContext; public SuburbRepository(DataContext _dBContext) { dBContext = _dBContext; } public List Get(Func where) { return dBContext.Suburbs.Where(where).ToList(); } public List GetAll() { return dBContext.Suburbs.ToList(); } public List GetBy(string province, string city) { var provObj = dBContext.Provinces.Where(p => p.Description == province).FirstOrDefault(); var cityObj = dBContext.Cities.Where(c => c.ProvinceId == provObj.Id && c.Description == city).FirstOrDefault(); if (cityObj != null) return dBContext.Suburbs.Where(s => s.CityId == cityObj.Id).OrderBy(s => s.Description).ToList(); else return null; } public Suburb GetDetailed(Func first) { throw new NotImplementedException(); } public List GetDetailedAll() { throw new NotImplementedException(); } public void Insert(Suburb 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(Suburb item) { dBContext.Suburbs.Remove(item); Save(); } public void Remove(IEnumerable items) { foreach (var item in items) { dBContext.Suburbs.Remove(item); } Save(); } public void RemoveAtId(int item) { var suburb = Get(x => x.Id == item).FirstOrDefault(); if (suburb != null) { dBContext.Suburbs.Remove(suburb); Save(); } } public void Save() { dBContext.SaveChanges(); } public void Update(Suburb item) { dBContext.Entry(item).State = EntityState.Modified; Save(); } public int NewId() { int id = 0; if (dBContext.Suburbs.Count() > 0) { id = dBContext.Suburbs.Max(x => x.Id); } id += 1; return id; } } }