From 1f4e14b2e973ee7de337fd4866d9a5ceff5cb6d1 Mon Sep 17 00:00:00 2001 From: Lucas Faria Mendes Date: Mon, 30 Mar 2026 10:38:18 -0300 Subject: chore: location --- .../ClienteTelefoneRepository.cs | 220 +++++++++++++++++++++ 1 file changed, 220 insertions(+) create mode 100644 Codemerx/Gestor.Infrastructure/Gestor.Infrastructure.Repository.Logic/ClienteTelefoneRepository.cs (limited to 'Codemerx/Gestor.Infrastructure/Gestor.Infrastructure.Repository.Logic/ClienteTelefoneRepository.cs') diff --git a/Codemerx/Gestor.Infrastructure/Gestor.Infrastructure.Repository.Logic/ClienteTelefoneRepository.cs b/Codemerx/Gestor.Infrastructure/Gestor.Infrastructure.Repository.Logic/ClienteTelefoneRepository.cs new file mode 100644 index 0000000..1a5fb3c --- /dev/null +++ b/Codemerx/Gestor.Infrastructure/Gestor.Infrastructure.Repository.Logic/ClienteTelefoneRepository.cs @@ -0,0 +1,220 @@ +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 Gestor.Model.Helper; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; +using System.Runtime.CompilerServices; + +namespace Gestor.Infrastructure.Repository.Logic +{ + public class ClienteTelefoneRepository : GenericRepository, IClienteTelefoneRepository, IGenericRepository + { + private readonly GenericUnitOfWork _unitOfWork; + + public ClienteTelefoneRepository(GenericUnitOfWork unitOfWork) : base(unitOfWork.Session) + { + this._unitOfWork = unitOfWork; + } + + public void Delete(long id) + { + base.Delete(base.FindEntityById(id)); + } + + public List DeleteFone(long clienteId, List telefones) + { + if (telefones == null || telefones.Count == 0) + { + return null; + } + List list = ( + from cliente in base.All() + where cliente.Cliente.Id == clienteId + select cliente).ToList().Where((ClienteTelefoneDb fone) => { + List clienteTelefones = telefones; + Func u003cu003e9_103 = ClienteTelefoneRepository.u003cu003ec.u003cu003e9__10_3; + if (u003cu003e9_103 == null) + { + u003cu003e9_103 = (ClienteTelefone t) => t.Id; + ClienteTelefoneRepository.u003cu003ec.u003cu003e9__10_3 = u003cu003e9_103; + } + return !clienteTelefones.Select(u003cu003e9_103).Contains(fone.Id); + }).ToList(); + list.ForEach((ClienteTelefoneDb fonesExcluido) => base.Delete(fonesExcluido)); + return ApplicationMapper.Mapper.Map, List>(list); + } + + public List Find(string telefone, long idempresa = 0L) + { + List condicaos = new List() + { + new Condicao() + { + Campo = "REPLACE(ISNULL(ct.fone, ''), '-','')", + Valores = telefone.Clear().CriarValor(), + Operador = Operador.Like + } + }; + if (idempresa > (long)0) + { + condicaos.Add(new Condicao() + { + Campo = "c.idempresa", + Valores = idempresa.CriarValor() + }); + } + return this.Select(condicaos.CreateParameters(0)); + } + + private List FindByCliente(long id) + { + return this.Select((new List() + { + new Condicao() + { + Campo = "ct.idcliente", + Valores = id.CriarValor() + } + }).CreateParameters(0)); + } + + public List FindByClienteId(long id) + { + return this.FindByCliente(id); + } + + public ClienteTelefone FindById(long id) + { + ClienteTelefoneDb clienteTelefoneDb = base.FindEntityById(id); + return ApplicationMapper.Mapper.Map(clienteTelefoneDb); + } + + public List Inserir(List telefones) + { + List clienteTelefoneDbs = ApplicationMapper.Mapper.Map, List>(telefones); + clienteTelefoneDbs.ForEach((ClienteTelefoneDb x) => { + string str; + ClienteTelefoneDb clienteTelefoneDb = x; + string observacao = x.Observacao; + if (observacao != null) + { + str = observacao.Trim(); + } + else + { + str = null; + } + clienteTelefoneDb.Observacao = str; + if (x.Id == 0) + { + this.SaveOrUpdate(x); + return; + } + base.Merge(x); + }); + return ApplicationMapper.Mapper.Map, List>(clienteTelefoneDbs); + } + + public List Inserir(List telefones, Cliente cliente) + { + telefones.ForEach((ClienteTelefone x) => { + string str; + x.Cliente = cliente; + ClienteTelefone clienteTelefone = x; + string observacao = x.Observacao; + if (observacao != null) + { + str = observacao.Trim(); + } + else + { + str = null; + } + clienteTelefone.Observacao = str; + }); + List clienteTelefoneDbs = ApplicationMapper.Mapper.Map, List>(telefones); + base.AddRange(clienteTelefoneDbs); + return ApplicationMapper.Mapper.Map, List>(clienteTelefoneDbs); + } + + public ClienteTelefone Merge(ClienteTelefone telefone) + { + ClienteTelefoneDb clienteTelefoneDb = ApplicationMapper.Mapper.Map(telefone); + clienteTelefoneDb.Observacao = clienteTelefoneDb.Observacao.Trim(); + base.Merge(clienteTelefoneDb); + return ApplicationMapper.Mapper.Map(clienteTelefoneDb); + } + + public List Merge(List telefones, Cliente cliente) + { + List clienteTelefoneDbs = ApplicationMapper.Mapper.Map, List>(telefones); + clienteTelefoneDbs.ForEach((ClienteTelefoneDb x) => { + string str; + ClienteTelefoneDb clienteTelefoneDb = x; + string observacao = x.Observacao; + if (observacao != null) + { + str = observacao.Trim(); + } + else + { + str = null; + } + clienteTelefoneDb.Observacao = str; + if (x.Id != 0) + { + base.Merge(x); + return; + } + x.Cliente = ApplicationMapper.Mapper.Map(cliente); + this.SaveOrUpdate(x); + }); + return ApplicationMapper.Mapper.Map, List>(clienteTelefoneDbs); + } + + public ClienteTelefone SaveOrUpdate(ClienteTelefone telefone) + { + string str; + ClienteTelefoneDb clienteTelefoneDb = ApplicationMapper.Mapper.Map(telefone); + ClienteTelefoneDb clienteTelefoneDb1 = clienteTelefoneDb; + string observacao = clienteTelefoneDb.Observacao; + if (observacao != null) + { + str = observacao.Trim(); + } + else + { + str = null; + } + clienteTelefoneDb1.Observacao = str; + this.SaveOrUpdate(clienteTelefoneDb); + return ApplicationMapper.Mapper.Map(clienteTelefoneDb); + } + + private List Select(SqlQueryCondition condition) + { + List clienteTelefones = CustomMap.MapTelefone(this._unitOfWork.Select(condition, "SELECT ct.idclitelefone AS Id, ct.idcliente as IdCliente, ct.ddd AS Prefixo, ct.fone AS Numero, ISNULL(ct.tipo , 0) AS Tipo, ct.obs AS Observacao, ct.ordem AS Ordem, c.nome as NomeCliente FROM clitelefone ct INNER JOIN cliente c ON c.idcliente = ct.idcliente WHERE ", "")); + int? nullable1 = new int?(0); + clienteTelefones.ForEach((ClienteTelefone x) => { + int? ordem = nullable1; + int? nullable = ordem; + nullable1 = (nullable.HasValue ? new int?(nullable.GetValueOrDefault() + 1) : null); + ClienteTelefone clienteTelefone = x; + ordem = x.Ordem; + clienteTelefone.Ordem = (ordem.HasValue ? ordem : nullable1); + }); + return clienteTelefones; + } + } +} \ No newline at end of file -- cgit v1.2.3