/// <summary> /// Estaqblece un nuevo Hecho en el consecuentes /// </summary> /// <param name="hecho">Objeto tipo hecho que se va a agregar</param> public void agregarHechoAlConsecuente(Hecho hecho) { consecuente = new DatosHechos() { id_hecho = hecho.id_hecho, nombre_hecho = "" + hecho, estado_hecho = false, hecho_establecido = false }; }
/// <summary> /// Se agrega un nuevo Hecho a lista de antecedentes /// </summary> /// <param name="hecho">Objeto tipo hecho que se va a agregar</param> public bool agregarHechoAlAntecedente(Hecho hecho) { //tod comprobar hecho no existente if (consultarAntecendente(hecho.id_hecho)) { return(false); } DatosHechos datos_hecho = new DatosHechos() { id_hecho = hecho.id_hecho, nombre_hecho = "" + hecho, estado_hecho = false, hecho_establecido = false }; antecedentes.Add(datos_hecho); return(true); }
/// <summary> /// Método para actualizar un hecho del repositorio de datos /// </summary> /// <param name="hecho">Hecho a actualizar</param> public void actualizarHecho(Hecho hecho) { string id_hecho = ""; if (hecho != null) { id_hecho = hecho.id_hecho; } if (File.Exists(ruta_carpeta_archivos + id_hecho)) { using (Stream stream = File.OpenWrite(ruta_carpeta_archivos + id_hecho)) { BinaryFormatter serializer = new BinaryFormatter(); serializer.Serialize(stream, hecho); stream.Close(); } } }
/// <summary> /// Metodo Equals modificado para comparar en base a Variable, condición y valor en la condición /// </summary> /// <param name="obj"></param> /// <returns></returns> public override bool Equals(object obj) { string tipo_obj = "" + obj.GetType(); if (!tipo_obj.Equals("SistemaExpertoLib.Hecho")) { return(false); } Hecho hecho = (Hecho)obj; if (!this.id_variable.Equals(hecho.id_variable)) { return(false); } if (this.tipo_variable != hecho.tipo_variable) { return(false); } if (!this.condicion.Equals(hecho.condicion)) { return(false); } switch (this.tipo_variable) { case Variable.LISTA: if (!this._valor_lista_hecho.Equals(hecho.valor_lista_hecho)) { return(false); } break; case Variable.NUMERICO: if (this.valor_numerico != hecho.valor_numerico) { return(false); } break; } return(true); }