public GenerarReporteSalida GenerarReporte(GenerarReporteEntrada entrada) { var salida = new GenerarReporteSalida(); var fabrica = new FabricaReportes(_gestorPersistencia); var reporte = fabrica.TraerReporte(entrada.Tipo); if (reporte == null) { return(SalidaBase.Fallo(salida, string.Format(Cadenas.reporte_tipo_no_encontrado, entrada.Tipo))); } var resultValidar = reporte.Validar(entrada.Parametros); if (!string.IsNullOrEmpty(resultValidar)) { return(SalidaBase.Fallo(salida, string.Format("{0}\n{1}", Cadenas.reporte_error_parametros, resultValidar))); } var consulta = reporte.Consultar(); salida.Consulta = consulta; return(SalidaBase.Exito(salida)); }
public void GenerarReporte_TipoDesconocido_Falla() { var entrada = new GenerarReporteEntrada { Tipo = (TipoReporte)1000, }; var salida = _gestorDominio.GenerarReporte(entrada); Assert.IsTrue(salida == SalidaBase.Resultados.Fallo); Assert.AreEqual(string.Format(Cadenas.reporte_tipo_no_encontrado, 1000), salida.Mensaje); }
public void GenerarReporte_InterpreteDetalleSinParametros_Falla() { var entrada = new GenerarReporteEntrada { Tipo = TipoReporte.InterpreteDetalle, }; var salida = _gestorDominio.GenerarReporte(entrada); Assert.IsTrue(salida == SalidaBase.Resultados.Fallo); Assert.AreEqual(string.Format("{0}\n{1}", Cadenas.reporte_error_parametros, Cadenas.rpt_val_no_interprete), salida.Mensaje); }
public void GenerarReporte_ListaAlbumesSinFechaInicio_Falla() { var entrada = new GenerarReporteEntrada { Tipo = TipoReporte.ListaAlbumes, Parametros = new Dictionary <string, object>() }; var salida = _gestorDominio.GenerarReporte(entrada); Assert.IsTrue(salida == SalidaBase.Resultados.Fallo); Assert.AreEqual(string.Format("{0}\n{1}", Cadenas.reporte_error_parametros, Cadenas.rpt_val_no_fch_inicio), salida.Mensaje); }
public ActionResult Traer(FormCollection form) { var tipo = form["tipo"]; var destino = int.Parse(form["destino"]); TipoReporte tipoReporte; if (!Enum.TryParse(tipo, out tipoReporte)) { return(RedirectToAction("Index")); } var llavesOmitir = new[] { "tipo" }; var parametros = form.Keys .Cast <string>() .Where(llave => !llavesOmitir.Contains(llave)) .ToDictionary <string, string, object>(llave => llave, llave => form[llave]); var entrada = new GenerarReporteEntrada { Tipo = tipoReporte, Parametros = parametros, }; var salida = _gestorDominio.GenerarReporte(entrada); if (salida != SalidaBase.Resultados.Exito) { TempData["mensaje"] = "error: " + salida.Mensaje; return(RedirectToAction("Index")); } var vista = salida.Consulta.Vista; dynamic objeto = salida.Consulta.Objeto; if (destino == 0) { return(View(vista, objeto)); } ViewData["destino"] = destino; var fch = DateTime.Now.ToString("yyyyMMdd_HHmmss_fff"); string archivo = tipoReporte + "_" + fch + ".pdf"; return(new ViewAsPdf(vista, objeto) { FileName = archivo }); }
public void GenerarReporte_ListaCancionesSinFechaFin_Falla() { var entrada = new GenerarReporteEntrada { Tipo = TipoReporte.ListaCanciones, Parametros = new Dictionary <string, object> { { "FchInicio", new DateTime(2015, 1, 1) } } }; var salida = _gestorDominio.GenerarReporte(entrada); Assert.IsTrue(salida == SalidaBase.Resultados.Fallo); Assert.AreEqual(string.Format("{0}\n{1}", Cadenas.reporte_error_parametros, Cadenas.rpt_val_no_fch_fin), salida.Mensaje); }
public void GenerarReporte_ListaAlbumesTodoNormal_Funciona() { var entrada = new GenerarReporteEntrada { Tipo = TipoReporte.ListaAlbumes, Parametros = new Dictionary <string, object> { { "FchInicio", new DateTime(2015, 1, 1) }, { "FchFin", new DateTime(2016, 1, 1) } } }; var salida = _gestorDominio.GenerarReporte(entrada); Assert.IsTrue(salida == SalidaBase.Resultados.Exito); Assert.IsNotNull(salida.Consulta); var consultaListaAlbumes = salida.Consulta as ReporteConsulta; Assert.IsNotNull(consultaListaAlbumes); Assert.AreEqual("_ReporteListaAlbumes", consultaListaAlbumes.Vista); Assert.IsNotNull(consultaListaAlbumes.Objeto); }