public ApiResponse <IList <DTOReporteDinamico> > GetReporteDinamico(DTOReporteDinamico reporteDinamico) { ApiResponse <IList <DTOReporteDinamico> > apiResponse = new ApiResponse <IList <DTOReporteDinamico> >(); try { GenericDataRepository <CatMotivosViaje> motivosViajeRepository = new GenericDataRepository <CatMotivosViaje>(); apiResponse.Data = (from encuesta in _encuestaRepository.GetList(x => x.FechaAplicacion >= reporteDinamico.FechaInicio.Date && x.FechaAplicacion.Date <= reporteDinamico.FechaFin.Date) from derechohabiente in _derechohabienteRepository.GetList(x => x.IdDerechohabiente == encuesta.IdDerechohabiente).Take(1).DefaultIfEmpty() 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 motivo in motivosViajeRepository.GetList(x => x.IdMotivoViaje == encuesta.IdMotivoViaje).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 DTOReporteDinamico { Destino = tipoDestino.Nombre, TemporadaVacacional = temporada.Nombre, Viaje = viaje.Nombre, Motivo = motivo.Nombre, Nombre = string.Join(" ", new[] { derechohabiente.Nombre, derechohabiente.ApellidoPaterno, derechohabiente.ApellidoMaterno }), Lada = derechohabiente.Lada, Telefono = derechohabiente.Telefono, CorreoElectronico = derechohabiente.CorreoElectronico, Genero = genero.Genero, Edad = DateTime.Now.Year - derechohabiente.FechaNacimiento.Year, Estado = estado.Nombre, Derechohabiente = derechohabiente.TipoDerechohabiente, Afiliacion = derechohabiente.Afiliacion, RecibirInformacion = derechohabiente.RecibirInformacion == true ? "SI" : "NO" }).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 GetReporteDinamico(DTOReporteDinamico reporteDinamico, string fileName) { MemoryStream memoryStream = null; try { GenericDataRepository <CatMotivosViaje> motivosViajeRepository = new GenericDataRepository <CatMotivosViaje>(); IList <DTOReporteDinamico> reporteDinamicoList = (from encuesta in _encuestaRepository.GetList(x => x.FechaAplicacion >= reporteDinamico.FechaInicio.Date && x.FechaAplicacion.Date <= reporteDinamico.FechaFin.Date) from derechohabiente in _derechohabienteRepository.GetList(x => x.IdDerechohabiente == encuesta.IdDerechohabiente).Take(1).DefaultIfEmpty() 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 motivo in motivosViajeRepository.GetList(x => x.IdMotivoViaje == encuesta.IdMotivoViaje).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 DTOReporteDinamico { Destino = tipoDestino.Nombre, TemporadaVacacional = temporada.Nombre, Viaje = viaje.Nombre, Motivo = motivo.Nombre, Nombre = derechohabiente.Nombre + " " + derechohabiente.ApellidoPaterno + " " + derechohabiente.ApellidoMaterno, Genero = genero.Genero, Edad = DateTime.Now.Year - derechohabiente.FechaNacimiento.Year, Estado = estado.Nombre, Derechohabiente = derechohabiente.TipoDerechohabiente, Afiliacion = derechohabiente.Afiliacion }) .ToList(); DataTable reporteDinamicoDataTable = ToDataTable.IListToDataTable(new List <DTOReporteDinamico>(reporteDinamicoList)); memoryStream = ToExcel.ExportToExcel(reporteDinamicoDataTable, fileName); } catch (Exception ex) { throw ex; } return(memoryStream); }
public async Task <ApiResponse <IList <DTOReporteDinamico> > > GetReporteDinamico(DTOReporteDinamico reporteDinamico) { return(await Task.Run(() => _repository.GetReporteDinamico(reporteDinamico))); }