public ApiResponse <IList <DTOReporteEstatico> > GetReporteEstatico(DTOReporteEstatico reporteEstatico) { ApiResponse <IList <DTOReporteEstatico> > apiResponse = new ApiResponse <IList <DTOReporteEstatico> >(); try { IList <Derechohabiente> derechohabientes = _derechohabienteRepository.GetList(x => (reporteEstatico.IdEstado != null ? x.IdEstado == reporteEstatico.IdEstado : x.IdEstado == x.IdEstado) && (reporteEstatico.IdGenero != null ? x.IdGenero == reporteEstatico.IdGenero : x.IdGenero == x.IdGenero) && (reporteEstatico.RangoInferior != null ? (reporteEstatico.RangoInferior <= (DateTime.Now.Year - x.FechaNacimiento.Year)) : x.FechaNacimiento == x.FechaNacimiento) && (reporteEstatico.RangoInferior != null ? (reporteEstatico.RangoSuperior >= (DateTime.Now.Year - x.FechaNacimiento.Year)) : x.FechaNacimiento == x.FechaNacimiento)); apiResponse.Data = (from encuesta in _encuestaRepository.GetList(x => x.FechaAplicacion >= reporteEstatico.FechaInicio.Date && x.FechaAplicacion.Date <= reporteEstatico.FechaFin.Date) join derechohabiente in derechohabientes on encuesta.IdDerechohabiente equals derechohabiente.IdDerechohabiente from tipoDestino in _tiposDestinoRepository.GetList(x => x.IdTipoDestino == encuesta.IdTipoDestino).Take(1).DefaultIfEmpty() from temporada in _temporadasRepository.GetList(x => x.IdTemporada == encuesta.IdTemporada).Take(1).DefaultIfEmpty() from viaje in _tiposViajeRepository.GetList(x => x.IdTipoViaje == encuesta.IdTipoViaje).Take(1).DefaultIfEmpty() from genero in _generoRepository.GetList(x => x.IdGenero == derechohabiente.IdGenero).Take(1).DefaultIfEmpty() from estado in _estadoRepository.GetList(x => x.IdEstado == derechohabiente.IdEstado).Take(1).DefaultIfEmpty() select new DTOReporteEstatico { Destino = tipoDestino.Nombre, TemporadaVacacional = temporada.Nombre, Viaje = viaje.Nombre, Genero = genero.Genero, Edad = DateTime.Now.Year - derechohabiente.FechaNacimiento.Year, Estado = estado.Nombre }).ToList(); if (apiResponse.Data != null) { apiResponse.Result = (int)ApiResult.Success; apiResponse.Message = Resources.ConsultaExitosa; } else { apiResponse.Result = (int)ApiResult.Failure; apiResponse.Message = Resources.ConsultaFallida; } } catch (Exception ex) { apiResponse.Result = (int)ApiResult.Exception; apiResponse.Message = ex.Message; } return(apiResponse); }
public MemoryStream GetReporteEstatico(DTOReporteEstatico reporteEstatico, string fileName) { MemoryStream memoryStream = null; try { IList <Derechohabiente> derechohabientes = _derechohabienteRepository.GetList(x => (reporteEstatico.IdEstado != null ? x.IdEstado == reporteEstatico.IdEstado : x.IdEstado == x.IdEstado) && (reporteEstatico.IdGenero != null ? x.IdGenero == reporteEstatico.IdGenero : x.IdGenero == x.IdGenero) && (reporteEstatico.RangoInferior != null ? (reporteEstatico.RangoInferior <= (DateTime.Now.Year - x.FechaNacimiento.Year)) : x.FechaNacimiento == x.FechaNacimiento) && (reporteEstatico.RangoInferior != null ? (reporteEstatico.RangoSuperior >= (DateTime.Now.Year - x.FechaNacimiento.Year)) : x.FechaNacimiento == x.FechaNacimiento)); IList <DTOReporteEstatico> reporteEstaticoList = (from encuesta in _encuestaRepository.GetList(x => x.FechaAplicacion >= reporteEstatico.FechaInicio.Date && x.FechaAplicacion.Date <= reporteEstatico.FechaFin.Date) join derechohabiente in derechohabientes on encuesta.IdDerechohabiente equals derechohabiente.IdDerechohabiente from tipoDestino in _tiposDestinoRepository.GetList(x => x.IdTipoDestino == encuesta.IdTipoDestino).Take(1).DefaultIfEmpty() from temporada in _temporadasRepository.GetList(x => x.IdTemporada == encuesta.IdTemporada).Take(1).DefaultIfEmpty() from viaje in _tiposViajeRepository.GetList(x => x.IdTipoViaje == encuesta.IdTipoViaje).Take(1).DefaultIfEmpty() from genero in _generoRepository.GetList(x => x.IdGenero == derechohabiente.IdGenero).Take(1).DefaultIfEmpty() from estado in _estadoRepository.GetList(x => x.IdEstado == derechohabiente.IdEstado).Take(1).DefaultIfEmpty() select new DTOReporteEstatico { Destino = tipoDestino.Nombre, TemporadaVacacional = temporada.Nombre, Viaje = viaje.Nombre, Genero = genero.Genero, Edad = DateTime.Now.Year - derechohabiente.FechaNacimiento.Year, Estado = estado.Nombre }).ToList(); DataTable reporteEstaticoDataTable = ToDataTable.IListToDataTable(new List <DTOReporteEstatico>(reporteEstaticoList)); memoryStream = ToExcel.ExportToExcel(reporteEstaticoDataTable, fileName); } catch (Exception ex) { throw ex; } return(memoryStream); }
public async Task <ApiResponse <IList <DTOReporteEstatico> > > GetReporteEstatico(DTOReporteEstatico reporteEstatico) { return(await Task.Run(() => _repository.GetReporteEstatico(reporteEstatico))); }