Ejemplo n.º 1
0
 public Rules_Aplicacion(UsuarioLogueado data)
     : base(data)
 {
     dao            = DAO_Aplicacion.Instance;
     _rulesPregunta = new Rules_Pregunta(data);
     _rulesTema     = new Rules_Tema(data);
 }
Ejemplo n.º 2
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);
        }
Ejemplo n.º 3
0
        public Resultado <Pregunta> Actualizar(_Model.Comandos.Comando_PreguntaActualizar comando)
        {
            var resultado = new Resultado <Pregunta>();

            var resultadoTransaccion = dao.Transaction(() =>
            {
                try
                {
                    //Busco la entidad
                    var resultadoEntity = GetByIdObligatorio(comando.Id.Value);
                    if (!resultadoEntity.Ok)
                    {
                        resultado.Error = resultadoEntity.Error;
                        return(false);
                    }
                    var entity = resultadoEntity.Return;
                    if (entity == null || entity.FechaBaja != null)
                    {
                        resultado.Error = "La pregunta no existe o esta dada de baja";
                        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);
                    }

                    //Actualizo
                    entity.Id          = comando.Id.Value;
                    entity.Titulo      = comando.Titulo;
                    entity.Descripcion = comando.Descripcion;
                    entity.Tags        = comando.Tags;
                    entity.Aplicacion  = aplicacion;
                    entity.Tema        = tema;

                    //Actualizo
                    var resultadoUpdate = base.Update(entity);
                    if (!resultadoUpdate.Ok)
                    {
                        resultado.Error = resultadoUpdate.Error;
                        return(false);
                    }

                    resultado.Return = resultadoUpdate.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);
        }