Ejemplo n.º 1
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));
            }
        }
Ejemplo n.º 2
0
        // GET:Exportar
        public ActionResult Index()
        {
            var ExportarViewModel = new ExportarViewModel();
            IQueryable<Institution> institutions = null;
            var user = UserManager.FindById(User.Identity.GetUserId());
            ExportarViewModel.CountryID = user.Institution.CountryID ?? 0;
            if (user.Institution.AccessLevel == AccessLevel.All)
            {
                ExportarViewModel.DisplayCountries = true;
                ExportarViewModel.DisplayHospitals = true;
            }
            else if (user.Institution is Hospital || user.Institution is AdminInstitution)
            {
                ExportarViewModel.DisplayHospitals = true;

                if (user.Institution.AccessLevel == AccessLevel.Country)
                {
                    institutions = db.Institutions.OfType<Hospital>()
                                  .Where(i => i.CountryID == user.Institution.CountryID);
                }
                else if (user.Institution.AccessLevel == AccessLevel.Area)
                {
                    institutions = db.Institutions.OfType<Hospital>()
                                   .Where(i => i.AreaID == user.Institution.AreaID);
                }
                else
                {
                    institutions = db.Institutions.OfType<Hospital>()
                                   .Where(i => i.ID == user.Institution.ID);
                }
            }
            else
            {
                if (user.Institution.AccessLevel == AccessLevel.Country)
                {
                    institutions = db.Institutions.OfType<Lab>()
                                   .Where(i => i.CountryID == user.Institution.CountryID);
                }
                else if (user.Institution.AccessLevel == AccessLevel.Area)
                {
                    institutions = db.Institutions.OfType<Lab>()
                                   .Where(i => i.AreaID == user.Institution.AreaID);
                }
                else
                {
                    institutions = db.Institutions.OfType<Lab>()
                                   .Where(i => i.ID == user.Institution.ID);
                }
            }

            ExportarViewModel.Countries = db.Countries
                    .Select(c => new CountryView()
                    {
                        Id = c.ID.ToString(),
                        Name = c.Name,
                        Active = c.Active
                    }).ToArray();

            if (institutions != null)
            {
                ExportarViewModel.Institutions = institutions.Select(i => new LookupView<Institution>()
                {
                    Id = i.ID.ToString(),
                    Name = i.Name
                }).ToArray();
            };

            return View(ExportarViewModel);
        }