Пример #1
0
 public ExportarService()
 {
     exportacionRepository = new ExportarRepository();
 }
Пример #2
0
        public IActionResult Exportar(ExportarViewModel exportarViewModel)
        {
            if (exportarViewModel.Registro == 0)
            {
                ModelState.AddModelError("", "Seleccione el tipo de registro que desea exportar");
                return(View(exportarViewModel));
            }

            if (exportarViewModel.Tipo == 0)
            {
                ModelState.AddModelError("", "Seleccione el tipo de exportacion");
                return(View(exportarViewModel));
            }

            System.Text.UTF8Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
            ExportarRepository exportarRepository = new ExportarRepository();
            LocalReport        localReport;
            ReportResult       reportResult;

            /*
             * Tipos
             * 1 - Ciudades
             * 2 - Comidas
             * 3 - Tipo de Atracciones
             * 4 - Atracciones
             * */
            try
            {
                switch (exportarViewModel.Registro)
                {
                case 1:
                    localReport = new LocalReport($"{Environment.WebRootPath}/reportes/reportCiudades.rdlc");
                    var datosCiudades = exportarRepository.GetReporteDatos_Ciudades();
                    localReport.AddDataSource("dsCiudades", datosCiudades);

                    if (exportarViewModel.Tipo == 1)
                    {
                        reportResult = localReport.Execute(RenderType.Pdf);
                        ModelState.AddModelError("", "Exportacion de [ Ciudades ] realizada con exito");
                        //return File(reportResult.MainStream, "application/pdf", "ciudades.pdf");
                        return(File(reportResult.MainStream, "application/pdf"));
                    }
                    else
                    {
                        //reportResult = localReport.Execute(RenderType.Excel);
                        reportResult = localReport.Execute(RenderType.ExcelOpenXml);
                        ModelState.AddModelError("", "Exportacion de [ Ciudades ] realizada con exito");
                        return(File(reportResult.MainStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "ciudades.xlsx"));
                    }

                case 2:
                    localReport = new LocalReport($"{Environment.WebRootPath}/reportes/reportComidas.rdlc");
                    var datosComidas = exportarRepository.GetReporteDatos_Comidas();
                    localReport.AddDataSource("dsComidas", datosComidas);

                    if (exportarViewModel.Tipo == 1)
                    {
                        reportResult = localReport.Execute(RenderType.Pdf);
                        ModelState.AddModelError("", "Exportacion de [ Comidas ] realizada con exito");
                        //return File(reportResult.MainStream, "application/pdf", "comidas.pdf");
                        return(File(reportResult.MainStream, "application/pdf"));
                    }
                    else
                    {
                        //reportResult = localReport.Execute(RenderType.Excel);
                        reportResult = localReport.Execute(RenderType.ExcelOpenXml);
                        ModelState.AddModelError("", "Exportacion de [ Comidas ] realizada con exito");
                        return(File(reportResult.MainStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "comidas.xlsx"));
                    }

                case 3:
                    localReport = new LocalReport($"{Environment.WebRootPath}/reportes/reportTipoAtracciones.rdlc");
                    var datosTipoAtracciones = exportarRepository.GetReporteDatos_TipoAtracciones();
                    localReport.AddDataSource("dsTipoAtracciones", datosTipoAtracciones);

                    if (exportarViewModel.Tipo == 1)
                    {
                        reportResult = localReport.Execute(RenderType.Pdf);
                        ModelState.AddModelError("", "Exportacion de [ Tipos de Atracciones ] realizada con exito");
                        //return File(reportResult.MainStream, "application/pdf", "tipoatracciones.pdf");
                        return(File(reportResult.MainStream, "application/pdf"));
                    }
                    else
                    {
                        //reportResult = localReport.Execute(RenderType.Excel);
                        reportResult = localReport.Execute(RenderType.ExcelOpenXml);
                        ModelState.AddModelError("", "Exportacion de [ Tipos de Atracciones ] realizada con exito");
                        return(File(reportResult.MainStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "tipoatracciones.xlsx"));
                    }

                case 4:
                    localReport = new LocalReport($"{Environment.WebRootPath}/reportes/reportAtracciones.rdlc");
                    var datosAtracciones = exportarRepository.GetReporteDatos_Atracciones();
                    localReport.AddDataSource("dsAtracciones", datosAtracciones);

                    if (exportarViewModel.Tipo == 1)
                    {
                        reportResult = localReport.Execute(RenderType.Pdf);
                        ModelState.AddModelError("", "Exportacion de [ Atracciones ] realizada con exito");
                        //return File(reportResult.MainStream, "application/pdf", "atracciones.pdf");
                        return(File(reportResult.MainStream, "application/pdf"));
                    }
                    else
                    {
                        //reportResult = localReport.Execute(RenderType.Excel);
                        reportResult = localReport.Execute(RenderType.ExcelOpenXml);
                        ModelState.AddModelError("", "Exportacion de [ Atracciones ] realizada con exito");
                        return(File(reportResult.MainStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "atracciones.xlsx"));
                    }

                default:
                    ModelState.AddModelError("", "Seleccione tipos validos");
                    return(View(exportarViewModel));
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(View(exportarViewModel));
            }
        }