using AutoMapper; using Gestor.Infrastructure.Entities.Generic; using Gestor.Infrastructure.Entities.Seguros; using Gestor.Infrastructure.Mappers; using Gestor.Infrastructure.Repository.Generic; using Gestor.Infrastructure.Repository.Interface; using Gestor.Infrastructure.UnitOfWork.Generic; using Gestor.Model.Domain.Seguros; using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Runtime.CompilerServices; namespace Gestor.Infrastructure.Repository.Logic { public class ControleRepository : GenericRepository, IControleRepository, IGenericRepository { private readonly GenericUnitOfWork _unitOfWork; public ControleRepository(GenericUnitOfWork unitOfWork) : base(unitOfWork.Session) { this._unitOfWork = unitOfWork; } public void Delete(long id) { base.Delete(base.FindEntityById(id)); } public IEnumerable FindByCustomerId(long id) { return from c in ( from c in base.All() where c.Cliente.Id == id select c).ToList() select c.Id; } public Controle FindById(long id) { ControleDb controleDb = base.FindEntityById(id); return ApplicationMapper.Mapper.Map(controleDb); } public Controle Merge(Controle controle) { ControleDb controleDb = ApplicationMapper.Mapper.Map(controle); base.Merge(controleDb); return ApplicationMapper.Mapper.Map(controleDb); } public Controle SaveOrUpdate(Controle controle) { ControleDb controleDb = ApplicationMapper.Mapper.Map(controle); this.SaveOrUpdate(controleDb); return ApplicationMapper.Mapper.Map(controleDb); } public IEnumerable SelectDocumentIds(long id) { return from x in base.All().First((ControleDb c) => c.Id == id).Documentos select x.Id; } } }