示例#1
0
        public Resultado <Pregunta> Insertar(_Model.Comandos.Comando_PreguntaNueva comando)
        {
            var resultado = new Resultado <Pregunta>();

            var resultadoTransaccion = dao.Transaction(() =>
            {
                try
                {
                    var validarComando = ValidarComandoInsertar(comando);
                    if (!validarComando.Ok)
                    {
                        resultado.Error = validarComando.Error;
                        return(false);
                    }

                    //Busco la Aplicacion
                    var resultadoAplicacion = new Rules_Aplicacion(getUsuarioLogueado()).GetById(comando.Aplicacion.Value);
                    if (!resultadoAplicacion.Ok)
                    {
                        resultado.Error = resultadoAplicacion.Error;
                        return(false);
                    }

                    var aplicacion = resultadoAplicacion.Return;
                    if (aplicacion == null || aplicacion.FechaBaja != null)
                    {
                        resultado.Error = "La Aplicacion no existe o esta dada de baja";
                        return(false);
                    }

                    //Busco el tema
                    var resultadoTema = new Rules_Tema(getUsuarioLogueado()).GetById(comando.Tema.Value);
                    if (!resultadoTema.Ok)
                    {
                        resultado.Error = resultadoTema.Error;
                        return(false);
                    }

                    var tema = resultadoTema.Return;
                    if (tema == null || tema.FechaBaja != null)
                    {
                        resultado.Error = "El tema no existe o esta dado de baja";
                        return(false);
                    }

                    //Creo la entidad
                    var entity = new Pregunta()
                    {
                        Aplicacion    = aplicacion,
                        Tema          = tema,
                        IdUsuarioAlta = comando.IdUsuario.Value,
                        Titulo        = comando.Titulo,
                        Descripcion   = comando.Descripcion,
                        Tags          = comando.Tags,
                    };

                    //Inserto
                    var resultadoInsertar = base.Insert(entity);
                    if (!resultadoInsertar.Ok)
                    {
                        resultado.Error = resultadoInsertar.Error;
                        return(false);
                    }

                    resultado.Return = resultadoInsertar.Return;
                    return(true);
                }
                catch (Exception e)
                {
                    resultado.Error = "Error procesando la solicitud";
                    return(false);
                }
            });

            if (resultado.Ok && !resultadoTransaccion)
            {
                resultado.Error = "Error procesando la solicitud";
                return(resultado);
            }

            return(resultado);
        }
示例#2
0
        public Resultado <bool> ValidarComandoInsertar(_Model.Comandos.Comando_PreguntaNueva comando)
        {
            var resultado = new Resultado <bool>();

            try
            {
                //Si es actualizar, valido el id
                if (comando is _Model.Comandos.Comando_PreguntaActualizar)
                {
                    _Model.Comandos.Comando_PreguntaActualizar c = (_Model.Comandos.Comando_PreguntaActualizar)comando;
                    if (!c.Id.HasValue || c.Id.Value <= 0)
                    {
                        resultado.Error = "El id de la pregunta es requerido";
                        return(resultado);
                    }
                }

                //Titulo requerdio
                if (string.IsNullOrEmpty(comando.Titulo))
                {
                    resultado.Error = "El titulo es requerido";
                    return(resultado);
                }

                //Descripcion requerdia
                if (string.IsNullOrEmpty(comando.Descripcion))
                {
                    resultado.Error = "La descripcion es requerida";
                    return(resultado);
                }

                //Tags requeridos
                if (string.IsNullOrEmpty(comando.Tags))
                {
                    resultado.Error = "Tags requeridos";
                    return(resultado);
                }

                //Aplicacion requerida
                if (!comando.Aplicacion.HasValue || comando.Aplicacion <= 0)
                {
                    resultado.Error = "La aplicacion a la cual pertenece la pregunta es requerida";
                    return(resultado);
                }

                //Tema requerido
                if (!comando.Tema.HasValue || comando.Tema <= 0)
                {
                    resultado.Error = "El tema al cual pertenece la pregunta es requerido";
                    return(resultado);
                }

                resultado.Return = true;
            }
            catch (Exception e)
            {
                resultado.SetError(e);
            }

            return(resultado);
        }