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 --- .../EstipulanteRepository.cs | 93 ++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 Gestor.Infrastructure/Gestor.Infrastructure.Repository.Logic/EstipulanteRepository.cs (limited to 'Gestor.Infrastructure/Gestor.Infrastructure.Repository.Logic/EstipulanteRepository.cs') diff --git a/Gestor.Infrastructure/Gestor.Infrastructure.Repository.Logic/EstipulanteRepository.cs b/Gestor.Infrastructure/Gestor.Infrastructure.Repository.Logic/EstipulanteRepository.cs new file mode 100644 index 0000000..b0ab6cd --- /dev/null +++ b/Gestor.Infrastructure/Gestor.Infrastructure.Repository.Logic/EstipulanteRepository.cs @@ -0,0 +1,93 @@ +using AutoMapper; +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 NHibernate; +using NHibernate.Connection; +using NHibernate.Impl; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.Common; +using System.Data.SqlClient; + +namespace Gestor.Infrastructure.Repository.Logic +{ + public class EstipulanteRepository : GenericRepository, IEstipulanteRepository, IGenericRepository + { + private readonly GenericUnitOfWork _unitOfWork; + + public EstipulanteRepository(GenericUnitOfWork unitOfWork) : base(unitOfWork.Session) + { + this._unitOfWork = unitOfWork; + } + + public void Delete(long id) + { + base.Delete(base.FindEntityById(id)); + } + + public List Find(string value, long idempresa = 0L) + { + string str = (idempresa == 0 ? string.Format(" AND idempresa = {0}", idempresa) : ""); + string str1 = string.Concat(new string[] { " AND (UPPER(ISNULL(nome, '')) LIKE '%", value.ToUpper(), "%' OR UPPER(ISNULL(cpfcnpj, '')) LIKE '%", value.ToUpper(), "%') " }); + return this.Select(string.Concat(str, str1)); + } + + public List Find() + { + return this.Select(""); + } + + public Estipulante FindById(long id) + { + EstipulanteDb estipulanteDb = base.FindEntityById(id); + return ApplicationMapper.Mapper.Map(estipulanteDb); + } + + public Estipulante Merge(Estipulante estipulante) + { + EstipulanteDb estipulanteDb = ApplicationMapper.Mapper.Map(estipulante); + base.Merge(estipulanteDb); + return ApplicationMapper.Mapper.Map(estipulanteDb); + } + + public Estipulante SaveOrUpdate(Estipulante estipulante) + { + EstipulanteDb estipulanteDb = ApplicationMapper.Mapper.Map(estipulante); + this.SaveOrUpdate(estipulanteDb); + return ApplicationMapper.Mapper.Map(estipulanteDb); + } + + private List Select(string condition) + { + object connection; + DataTable dataTable = new DataTable(); + SessionFactoryImpl sessionFactory = this._unitOfWork.Session.SessionFactory as SessionFactoryImpl; + if (sessionFactory != null) + { + connection = sessionFactory.ConnectionProvider.GetConnection(); + } + else + { + connection = null; + } + using (SqlConnection sqlConnection = connection as SqlConnection) + { + using (SqlCommand sqlCommand = sqlConnection.CreateCommand()) + { + sqlCommand.CommandText = string.Concat("SELECT DISTINCT * FROM estipulante WHERE 1=1 ", condition, ";"); + using (SqlDataAdapter sqlDataAdapter = new SqlDataAdapter()) + { + sqlDataAdapter.SelectCommand = sqlCommand; + sqlDataAdapter.Fill(dataTable); + } + } + } + return dataTable.MapEstipulante(); + } + } +} \ No newline at end of file -- cgit v1.2.3