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 --- .../MaisContatoRepository.cs | 158 +++++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 Gestor.Infrastructure/Gestor.Infrastructure.Repository.Logic/MaisContatoRepository.cs (limited to 'Gestor.Infrastructure/Gestor.Infrastructure.Repository.Logic/MaisContatoRepository.cs') diff --git a/Gestor.Infrastructure/Gestor.Infrastructure.Repository.Logic/MaisContatoRepository.cs b/Gestor.Infrastructure/Gestor.Infrastructure.Repository.Logic/MaisContatoRepository.cs new file mode 100644 index 0000000..3dccaa4 --- /dev/null +++ b/Gestor.Infrastructure/Gestor.Infrastructure.Repository.Logic/MaisContatoRepository.cs @@ -0,0 +1,158 @@ +using AutoMapper; +using Gestor.Infrastructure.Entities.Generic; +using Gestor.Infrastructure.Entities.Seguros; +using Gestor.Infrastructure.Helpers; +using Gestor.Infrastructure.Mappers; +using Gestor.Infrastructure.Repository.Generic; +using Gestor.Infrastructure.Repository.Interface; +using Gestor.Infrastructure.UnitOfWork.Generic; +using Gestor.Model.Common; +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 MaisContatoRepository : GenericRepository, IMaisContatoRepository, IGenericRepository + { + private readonly GenericUnitOfWork _unitOfWork; + + public MaisContatoRepository(GenericUnitOfWork unitOfWork) : base(unitOfWork.Session) + { + this._unitOfWork = unitOfWork; + } + + public void Delete(long id) + { + base.Delete(base.FindEntityById(id)); + } + + public List DeleteContato(long clienteId, List contatos) + { + if (contatos == null) + { + return null; + } + List list = ( + from cliente in base.All() + where cliente.Cliente.Id == clienteId + select cliente).ToList().Where((MaisContatoDb contato) => { + List maisContatos = contatos; + Func u003cu003e9_83 = MaisContatoRepository.u003cu003ec.u003cu003e9__8_3; + if (u003cu003e9_83 == null) + { + u003cu003e9_83 = (MaisContato t) => t.Id; + MaisContatoRepository.u003cu003ec.u003cu003e9__8_3 = u003cu003e9_83; + } + if (maisContatos.Select(u003cu003e9_83).Contains(contato.Id)) + { + return false; + } + return !contato.Excluido; + }).ToList(); + if (contatos.Count == 0 && (list == null || list.Count == 0)) + { + return null; + } + list.ForEach((MaisContatoDb contato) => { + contato.Excluido = true; + base.Merge(contato); + }); + return ApplicationMapper.Mapper.Map, List>(list); + } + + public List FindByCustomerId(long id) + { + ClienteDb clienteDb = this._unitOfWork.Query().FirstOrDefault((ClienteDb x) => x.Id == id); + if (clienteDb == null) + { + return new List(); + } + Cliente cliente = ApplicationMapper.Mapper.Map(clienteDb); + List condicaos = new List() + { + new Condicao() + { + Campo = "idcliente", + Valores = id.CriarValor() + }, + new Condicao() + { + Campo = "excluido", + Valores = null, + Operacao = Operacao.Or, + Grupo = 1 + }, + new Condicao() + { + Campo = "excluido", + Valores = "0".CriarValor(), + Operacao = Operacao.Or, + Grupo = 1 + } + }; + return this._unitOfWork.Select(condicaos.CreateParameters(0), "SELECT * FROM clicontato WHERE", "").MapMaisContatos(cliente); + } + + public MaisContato FindById(long id) + { + MaisContatoDb maisContatoDb = base.FindEntityById(id); + return ApplicationMapper.Mapper.Map(maisContatoDb); + } + + public List Inserir(List contatos, Cliente cliente) + { + contatos.ForEach((MaisContato x) => x.Cliente = cliente); + List maisContatoDbs = ApplicationMapper.Mapper.Map, List>(contatos); + base.AddRange(maisContatoDbs); + return ApplicationMapper.Mapper.Map, List>(maisContatoDbs); + } + + public List Inserir(List contatos) + { + List maisContatoDbs = ApplicationMapper.Mapper.Map, List>(contatos); + maisContatoDbs.ForEach((MaisContatoDb x) => { + if (x.Id == 0) + { + this.SaveOrUpdate(x); + return; + } + base.Merge(x); + }); + return ApplicationMapper.Mapper.Map, List>(maisContatoDbs); + } + + public MaisContato Merge(MaisContato maisContato) + { + MaisContatoDb maisContatoDb = ApplicationMapper.Mapper.Map(maisContato); + base.Merge(maisContatoDb); + return ApplicationMapper.Mapper.Map(maisContatoDb); + } + + public List Merge(List contatos, Cliente cliente) + { + List maisContatoDbs = ApplicationMapper.Mapper.Map, List>(contatos); + maisContatoDbs.ForEach((MaisContatoDb x) => { + if (x.Id != 0) + { + base.Merge(x); + return; + } + x.Cliente = ApplicationMapper.Mapper.Map(cliente); + this.SaveOrUpdate(x); + }); + return ApplicationMapper.Mapper.Map, List>(maisContatoDbs); + } + + public MaisContato SaveOrUpdate(MaisContato maisContato) + { + MaisContatoDb maisContatoDb = ApplicationMapper.Mapper.Map(maisContato); + this.SaveOrUpdate(maisContatoDb); + return ApplicationMapper.Mapper.Map(maisContatoDb); + } + } +} \ No newline at end of file -- cgit v1.2.3