Пример #1
0
 public CorreosController(GestorDeCorreos gestorDeCorreos, GestorDeErrores gestorDeErrores)
     : base
     (
         gestorDeCorreos,
         gestorDeErrores
     )
 {
 }
        public override string RenderControl()
        {
            try
            {
                var renderCorreo = "";
                if (GestorDeCorreos.PermiteElEnvioDeCorreo <TElemento>())
                {
                    renderCorreo = $@"
                  <!--  *******************  div de envío de correo *************** -->
                  {Cartero.RenderDeEnvioDeCorreo()}
                  <!--  **********  div de selector de receptor de correo****** -->
                  {Cartero.RenderDeModalesParaSeleccionarReceptores()}";
                }


                var renderMnt = Mnt.RenderDelMantenimiento();
                if (ModoDescriptor.Mantenimiento == Modo)
                {
                    return($@"
                  {renderMnt}
                  <!--  ******************* div de creacion ******************* -->
                  {Creador.RenderDeCreacion()}
                  <!--  *******************  div de edición ******************* -->
                  {Editor.RenderDeEdicion()}
                  <!--  *******************  div de exportacion ******************* -->
                  {Exportador.RenderDeExportacion()}
                  <!--  *******************  div de borrado ******************* -->
                  {Borrado.RenderDelBorrado()}
                  {renderCorreo}
                  <!--  *******************  modales de filtrado ******************* -->
                  {Mnt.Filtro.RenderizarLasModalesDelFiltro()}");
                }

                if (ModoDescriptor.Consulta == Modo)
                {
                    return($@"
                 {renderMnt}
                 <!--  *******************  div de edición -->
                 {Editor.RenderControl()}");
                }

                return(renderMnt);
            }
            catch (Exception e)
            {
                return($@"
                   <input id=error>{e.Message}</input>
                ");
            }
            finally
            {
                BlanquearListaDeIds();
            }
        }
        public static void Exportacion(EntornoDeTrabajo entorno)
        {
            Dictionary <string, object> parametros = entorno.TrabajoDeUsuario.Parametros.ToDiccionarioDeParametros();

            if (!parametros.ContainsKey(nameof(ElementoDto)))
            {
                GestorDeErrores.Emitir("No se ha indicado el ElementoDto de exportación");
            }

            if (!parametros.ContainsKey(nameof(Registro)))
            {
                GestorDeErrores.Emitir("No se ha indicado el Registro de exportación");
            }

            var gestor = NegociosDeSe.CrearGestor(entorno.contextoDelProceso, parametros[nameof(Registro)].ToString(), parametros[nameof(ElementoDto)].ToString());

            var cantidad = !parametros.ContainsKey(ltrFiltros.cantidad) ? -1 : parametros[ltrFiltros.cantidad].ToString().Entero();
            var posicion = !parametros.ContainsKey(ltrFiltros.posicion) ? 0 : parametros[ltrFiltros.posicion].ToString().Entero();
            List <ClausulaDeFiltrado>   filtros = !parametros.ContainsKey(ltrFiltros.filtro) || parametros[ltrFiltros.filtro].ToString().IsNullOrEmpty() ? new List <ClausulaDeFiltrado>() : JsonConvert.DeserializeObject <List <ClausulaDeFiltrado> >(parametros["filtro"].ToString());
            List <ClausulaDeOrdenacion> orden   = !parametros.ContainsKey(ltrFiltros.orden) || parametros[ltrFiltros.orden].ToString().IsNullOrEmpty() ? new List <ClausulaDeOrdenacion>() : JsonConvert.DeserializeObject <List <ClausulaDeOrdenacion> >(parametros["orden"].ToString());

            var opcionesDeMapeo = new Dictionary <string, object>();

            opcionesDeMapeo.Add(ltrParametrosDto.DescargarGestionDocumental, false);

            Type       clase          = gestor.GetType();
            MethodInfo metodo         = clase.GetMethod(nameof(GestorDeElementos <ContextoSe, Registro, ElementoDto> .LeerElementos));
            dynamic    elementos      = metodo.Invoke(gestor, new object[] { posicion, cantidad, filtros, orden, opcionesDeMapeo });
            var        ficheroConRuta = GenerarExcel(entorno.contextoDelProceso, elementos);

            GestorDeCorreos.CrearCorreoPara(entorno.contextoDelProceso
                                            , new List <string> {
                parametros[ltrFltCorreosDto.receptores].ToString()
            }
                                            , "Exportación solicitada"
                                            , "Se le adjunta el fichero con la exportación solicitada"
                                            , new List <TipoDtoElmento>()
                                            , new List <string>()
            {
                ficheroConRuta
            }
                                            );
        }
        //END-POINT: desde CrudMantenimiento.Ts
        public JsonResult epEnviarPorCorreo(string parametrosJson)
        {
            var r = new Resultado();

            try
            {
                ApiController.CumplimentarDatosDeUsuarioDeConexion(Contexto, Mapeador, HttpContext);
                GestorDeCorreos.CrearCorreoDe(Contexto, parametrosJson);

                r.Mensaje      = $"Correo enviado";
                r.ModoDeAcceso = enumModoDeAccesoDeDatos.Consultor.Render();
                r.Estado       = enumEstadoPeticion.Ok;
            }
            catch (Exception e)
            {
                ApiController.PrepararError(e, r, "Error al enviar el correo.");
            }
            return(new JsonResult(r));
        }
        public DescriptorDeCrud(ContextoSe contexto, string controlador, string vista, ModoDescriptor modo, string rutaBase, string id = null)
            : base(
                padre: null,
                id: id == null ? $"{NombreCrud}" : id,
                etiqueta: typeof(TElemento).Name.Replace("Dto", ""),
                propiedad: null,
                ayuda: null,
                posicion: null
                )
        {
            var elemento = typeof(TElemento).Name.Replace("Dto", "");

            RutaBase    = rutaBase;
            Tipo        = enumTipoControl.DescriptorDeCrud;
            Mnt         = new DescriptorDeMantenimiento <TElemento>(crud: this, etiqueta: elemento);
            Controlador = controlador.Replace("Controller", "");
            Vista       = $@"{vista}";
            Contexto    = contexto;
            Modo        = modo;

            DefinirColumnasDelGrid();

            Creador    = new DescriptorDeCreacion <TElemento>(crud: this, etiqueta: elemento);
            Editor     = new DescriptorDeEdicion <TElemento>(crud: this, etiqueta: elemento);
            Exportador = new DescriptorDeExportacion <TElemento>(crud: this);
            if (modo == ModoDescriptor.Mantenimiento)
            {
                Mnt.ZonaMenu.AnadirOpcionDeIrACrear();
                Mnt.ZonaMenu.AnadirOpcionDeIrAEditar();
                Mnt.ZonaMenu.AnadirOpcionDeIrAExportar();
                if (GestorDeCorreos.PermiteElEnvioDeCorreo <TElemento>())
                {
                    Cartero = new DescriptorDeEnviarCorreo <TElemento>(crud: this);
                    Mnt.ZonaMenu.AnadirOpcionDeEnviareMail();
                }
                Borrado = new DescriptorDeBorrado <TElemento>(crud: this, etiqueta: elemento);
                Mnt.ZonaMenu.AnadirOpcionDeBorrar();

                DefinirDescriptorDeAuditoria();
            }
        }