public RespuestaBD Crear(NuevoSubModulo peticionDeCreacion)
        {
            using (InoBD db = new InoBD())
            {
                Dominio.Entidades.SubModulo subModulo        = Mapper.Map <Dominio.Entidades.SubModulo>(peticionDeCreacion);
                Dominio.Entidades.SubModulo moduloEncontrado = db.SubModulo.Where(x => x.Nombre == peticionDeCreacion.Nombre).FirstOrDefault();
                if (moduloEncontrado == null)
                {
                    db.SubModulo.Add(subModulo);
                    db.SaveChanges();
                    //Mensaje de respuesta
                    respuesta.Id      = subModulo.IdSubModulo;
                    respuesta.Mensaje = "Se creó el sub módulo correctamente.";

                    // Auditoria
                    AuditoriaGeneral auditoria = new AuditoriaGeneral
                    {
                        Accion          = "Agregar",
                        NombreTabla     = "SubModulo",
                        ValoresAntiguos = null,
                        ValoresNuevos   = JsonConvert.SerializeObject(peticionDeCreacion),
                        IdUsuario       = peticionDeCreacion.IdUsuarioCreacion
                    };
                    this._gestorDeAuditoria.AgregarAuditoria(auditoria);
                }
                else
                {
                    //Mensaje de respuesta
                    respuesta.Id      = 0;
                    respuesta.Mensaje = "El nombre del sub módulo ya existe.";
                }

                return(respuesta);
            }
        }
        public RespuestaBD Actualizar(ActualizarSubModulo peticionDeActualizacion)
        {
            using (InoBD db = new InoBD())
            {
                Dominio.Entidades.SubModulo subModuloEncontrada = db.SubModulo.Find(peticionDeActualizacion.IdSubModulo);
                string valoresAntiguos = JsonConvert.SerializeObject(subModuloEncontrada);
                if (subModuloEncontrada != null)
                {
                    Dominio.Entidades.SubModulo nombreEncontrado = db.SubModulo.Where(x => x.Nombre == peticionDeActualizacion.Nombre && x.IdModulo != peticionDeActualizacion.IdModulo).FirstOrDefault();
                    if (nombreEncontrado != null)
                    {
                        //Mensaje de respuesta
                        respuesta.Id      = 0;
                        respuesta.Mensaje = "El nombre del sub módulo ya existe.";
                    }
                    else
                    {
                        db.Entry(subModuloEncontrada).CurrentValues.SetValues(peticionDeActualizacion);
                        db.SaveChanges();
                        //Mensaje de respuesta
                        respuesta.Id      = subModuloEncontrada.IdSubModulo;
                        respuesta.Mensaje = "Se modificó el sub módulo correctamente.";

                        // Auditoria
                        AuditoriaGeneral auditoria = new AuditoriaGeneral
                        {
                            Accion          = "Actualizar",
                            NombreTabla     = "SubModulo",
                            ValoresAntiguos = valoresAntiguos,
                            ValoresNuevos   = JsonConvert.SerializeObject(peticionDeActualizacion),
                            IdUsuario       = peticionDeActualizacion.IdUsuarioModificacion
                        };
                        this._gestorDeAuditoria.AgregarAuditoria(auditoria);
                    }
                }
                else
                {
                    //Mensaje de respuesta
                    respuesta.Id      = 0;
                    respuesta.Mensaje = "El sub módulo no existe.";
                }

                return(respuesta);
            }
        }