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.Linq; using System.Linq.Expressions; using System.Runtime.CompilerServices; namespace Gestor.Infrastructure.Repository.Logic { public class SinistroAutoRepository : GenericRepository, ISinistroAutoRepository, IGenericRepository { private readonly GenericUnitOfWork _unitOfWork; public SinistroAutoRepository(GenericUnitOfWork unitOfWork) : base(unitOfWork.Session) { this._unitOfWork = unitOfWork; } public void Delete(long id) { base.Delete(base.FindEntityById(id)); } public SinistroAuto FindById(long id) { SinistroAutoDb sinistroAutoDb = base.FindEntityById(id); return ApplicationMapper.Mapper.Map(sinistroAutoDb); } public SinistroAuto FindBySinistroId(long id) { SinistroAutoDb sinistroAutoDb = base.All().FirstOrDefault((SinistroAutoDb x) => x.Sinistro.Id == id); return ApplicationMapper.Mapper.Map(sinistroAutoDb); } public SinistroAuto Merge(SinistroAuto sinistroAuto) { SinistroAutoDb sinistroAutoDb = ApplicationMapper.Mapper.Map(sinistroAuto); base.Merge(sinistroAutoDb); return ApplicationMapper.Mapper.Map(sinistroAutoDb); } public bool ParceiroUtilizado(long id) { return base.All().Any((SinistroAutoDb x) => x.ParceiroFunilaria.Id == id || x.ParceiroMecanica.Id == id); } public SinistroAuto SaveOrUpdate(SinistroAuto sinistroAuto) { SinistroAutoDb sinistroAutoDb = ApplicationMapper.Mapper.Map(sinistroAuto); this.SaveOrUpdate(sinistroAutoDb); return ApplicationMapper.Mapper.Map(sinistroAutoDb); } } }