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 --- .../SeguradoraContatoRepository.cs | 131 +++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 Codemerx/Gestor.Infrastructure/Gestor.Infrastructure.Repository.Logic/SeguradoraContatoRepository.cs (limited to 'Codemerx/Gestor.Infrastructure/Gestor.Infrastructure.Repository.Logic/SeguradoraContatoRepository.cs') diff --git a/Codemerx/Gestor.Infrastructure/Gestor.Infrastructure.Repository.Logic/SeguradoraContatoRepository.cs b/Codemerx/Gestor.Infrastructure/Gestor.Infrastructure.Repository.Logic/SeguradoraContatoRepository.cs new file mode 100644 index 0000000..19ee09a --- /dev/null +++ b/Codemerx/Gestor.Infrastructure/Gestor.Infrastructure.Repository.Logic/SeguradoraContatoRepository.cs @@ -0,0 +1,131 @@ +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 SeguradoraContatoRepository : GenericRepository, ISeguradoraContatoRepository, IGenericRepository + { + private readonly GenericUnitOfWork _unitOfWork; + + public SeguradoraContatoRepository(GenericUnitOfWork unitOfWork) : base(unitOfWork.Session) + { + this._unitOfWork = unitOfWork; + } + + public void Delete(long id) + { + SeguradoraContatoDb seguradoraContatoDb = base.FindEntityById(id); + if (seguradoraContatoDb == null) + { + return; + } + base.Delete(seguradoraContatoDb); + } + + public List FindAssistencia(long empresa, long id) + { + List condicaos = new List() + { + new Condicao() + { + Campo = "idempresa", + Valores = empresa.CriarValor() + }, + new Condicao() + { + Campo = "idciaseg", + Valores = id.CriarValor() + }, + new Condicao() + { + Campo = "TipoContato", + Valores = 1.CriarValor() + } + }; + return this._unitOfWork.Select(condicaos.CreateParameters(0), "SELECT TOP 4 * FROM ciacontato WHERE ", "").MapSeguradoraContato(); + } + + public SeguradoraContato FindById(long id) + { + SeguradoraContatoDb seguradoraContatoDb = base.FindEntityById(id); + return ApplicationMapper.Mapper.Map(seguradoraContatoDb); + } + + public List FindBySeguradora(long empresa, long id) + { + List condicaos = new List() + { + new Condicao() + { + Campo = "idempresa", + Valores = empresa.CriarValor() + }, + new Condicao() + { + Campo = "idciaseg", + Valores = id.CriarValor() + } + }; + return this._unitOfWork.Select(condicaos.CreateParameters(0), "SELECT * FROM ciacontato WHERE ", "").MapSeguradoraContato(); + } + + public SeguradoraContato Merge(SeguradoraContato contato) + { + SeguradoraContatoDb seguradoraContatoDb = ApplicationMapper.Mapper.Map(contato); + base.Merge(seguradoraContatoDb); + return ApplicationMapper.Mapper.Map(seguradoraContatoDb); + } + + public List Merge(List contatos, Seguradora seguradora, long empresa) + { + IQueryable seguradoraContatoDbs = + from x in base.All() + where x.Seguradora.Id == seguradora.Id && x.Empresa.Id == empresa + select x; + SeguradoraContatoRepository seguradoraContatoRepository = this; + ( + from x in seguradoraContatoDbs + select x.Id).ToList().Where((long x) => { + List seguradoraContatos = contatos; + Func u003cu003e9_64 = SeguradoraContatoRepository.u003cu003ec.u003cu003e9__6_4; + if (u003cu003e9_64 == null) + { + u003cu003e9_64 = (SeguradoraContato t) => t.Id; + SeguradoraContatoRepository.u003cu003ec.u003cu003e9__6_4 = u003cu003e9_64; + } + return !seguradoraContatos.Select(u003cu003e9_64).Contains(x); + }).ToList().ForEach(new Action(seguradoraContatoRepository.Delete)); + List seguradoraContatoDbs1 = ApplicationMapper.Mapper.Map, List>(contatos); + seguradoraContatoDbs1.ForEach((SeguradoraContatoDb x) => { + if (x.Id == 0) + { + this.SaveOrUpdate(x); + return; + } + base.Merge(x); + }); + return ApplicationMapper.Mapper.Map, List>(seguradoraContatoDbs1); + } + + public SeguradoraContato SaveOrUpdate(SeguradoraContato contato) + { + SeguradoraContatoDb seguradoraContatoDb = ApplicationMapper.Mapper.Map(contato); + this.SaveOrUpdate(seguradoraContatoDb); + return ApplicationMapper.Mapper.Map(seguradoraContatoDb); + } + } +} \ No newline at end of file -- cgit v1.2.3