From 674ca83ba9243a9e95a7568c797668dab6aee26a Mon Sep 17 00:00:00 2001 From: Lucas Faria Mendes Date: Mon, 30 Mar 2026 10:35:25 -0300 Subject: feat: upload files --- .../VendedorTelefoneRepository.cs | 115 +++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 Gestor.Infrastructure/Gestor.Infrastructure.Repository.Logic/VendedorTelefoneRepository.cs (limited to 'Gestor.Infrastructure/Gestor.Infrastructure.Repository.Logic/VendedorTelefoneRepository.cs') diff --git a/Gestor.Infrastructure/Gestor.Infrastructure.Repository.Logic/VendedorTelefoneRepository.cs b/Gestor.Infrastructure/Gestor.Infrastructure.Repository.Logic/VendedorTelefoneRepository.cs new file mode 100644 index 0000000..2f4d3c1 --- /dev/null +++ b/Gestor.Infrastructure/Gestor.Infrastructure.Repository.Logic/VendedorTelefoneRepository.cs @@ -0,0 +1,115 @@ +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.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 VendedorTelefoneRepository : GenericRepository, IVendedorTelefoneRepository, IGenericRepository + { + private readonly GenericUnitOfWork _unitOfWork; + + public VendedorTelefoneRepository(GenericUnitOfWork unitOfWork) : base(unitOfWork.Session) + { + this._unitOfWork = unitOfWork; + } + + public void Delete(long id) + { + base.Delete(base.FindEntityById(id)); + } + + public VendedorTelefone FindById(long id) + { + VendedorTelefoneDb vendedorTelefoneDb = base.FindEntityById(id); + return ApplicationMapper.Mapper.Map(vendedorTelefoneDb); + } + + public List FindByVendedorId(long id) + { + List list = ( + from x in base.All() + where x.Vendedor.Id == id + select x).ToList(); + return ApplicationMapper.Mapper.Map, List>(list); + } + + public List Inserir(List telefones) + { + List vendedorTelefoneDbs = ApplicationMapper.Mapper.Map, List>(telefones); + vendedorTelefoneDbs.ForEach((VendedorTelefoneDb x) => { + if (x.Id == 0) + { + this.SaveOrUpdate(x); + return; + } + base.Merge(x); + }); + return ApplicationMapper.Mapper.Map, List>(vendedorTelefoneDbs); + } + + public List Inserir(List telefones, Vendedor vendedor) + { + telefones.ForEach((VendedorTelefone x) => x.Vendedor = vendedor); + List vendedorTelefoneDbs = ApplicationMapper.Mapper.Map, List>(telefones); + base.AddRange(vendedorTelefoneDbs); + return ApplicationMapper.Mapper.Map, List>(vendedorTelefoneDbs); + } + + public VendedorTelefone Merge(VendedorTelefone telefone) + { + VendedorTelefoneDb vendedorTelefoneDb = ApplicationMapper.Mapper.Map(telefone); + base.Merge(vendedorTelefoneDb); + return ApplicationMapper.Mapper.Map(vendedorTelefoneDb); + } + + public List Merge(List telefones, Vendedor vendedor) + { + IQueryable vendedorTelefoneDbs = + from x in base.All() + where x.Vendedor.Id == vendedor.Id + select x; + VendedorTelefoneRepository vendedorTelefoneRepository = this; + ( + from x in vendedorTelefoneDbs + select x.Id).ToList().Where((long x) => { + List vendedorTelefones = telefones; + Func u003cu003e9_94 = VendedorTelefoneRepository.u003cu003ec.u003cu003e9__9_4; + if (u003cu003e9_94 == null) + { + u003cu003e9_94 = (VendedorTelefone t) => t.Id; + VendedorTelefoneRepository.u003cu003ec.u003cu003e9__9_4 = u003cu003e9_94; + } + return !vendedorTelefones.Select(u003cu003e9_94).Contains(x); + }).ToList().ForEach(new Action(vendedorTelefoneRepository.Delete)); + List vendedorTelefoneDbs1 = ApplicationMapper.Mapper.Map, List>(telefones); + vendedorTelefoneDbs1.ForEach((VendedorTelefoneDb x) => { + if (x.Id != 0) + { + base.Merge(x); + return; + } + x.Vendedor = ApplicationMapper.Mapper.Map(vendedor); + this.SaveOrUpdate(x); + }); + return ApplicationMapper.Mapper.Map, List>(vendedorTelefoneDbs1); + } + + public VendedorTelefone SaveOrUpdate(VendedorTelefone telefone) + { + VendedorTelefoneDb vendedorTelefoneDb = ApplicationMapper.Mapper.Map(telefone); + this.SaveOrUpdate(vendedorTelefoneDb); + return ApplicationMapper.Mapper.Map(vendedorTelefoneDb); + } + } +} \ No newline at end of file -- cgit v1.2.3