示例#1
0
            public override string Evaluate(RequestProcess process)
            {
                // Does the triple already exist?
                var clause = new Clause(this.Subject, this.Predicate, this.Object, true);

                clause.Evaluate(process);

                if (string.IsNullOrWhiteSpace(clause.subj) || string.IsNullOrWhiteSpace(clause.pred) || string.IsNullOrWhiteSpace(clause.obj))
                {
                    process.Log(LogLevel.Diagnostic, $"In element <addtriple>: Could not add triple with missing elements.  Subject: {clause.subj}  Predicate: {clause.pred}  Object: {clause.obj}");
                    return(process.Bot.Config.DefaultTriple);
                }

                var triples = process.Bot.Triples.Match(clause);

                if (triples.Count != 0)
                {
                    process.Log(LogLevel.Diagnostic, $"In element <addtriple>: Triple already exists at key {triples.First()}.  Subject: {clause.subj}  Predicate: {clause.pred}  Object: {clause.obj}");
                    return(triples.First().ToString());
                }

                // Add the triple.
                int key = process.Bot.Triples.Add(clause.subj, clause.pred, clause.obj);

                process.Log(LogLevel.Diagnostic, $"In element <addtriple>: Added a new triple with key {key}.  Subject: {clause.subj}  Predicate: {clause.pred}  Object: {clause.obj}");
                return(key.ToString());
            }
示例#2
0
            public override string Evaluate(RequestProcess process)
            {
                var clause = new Clause(this.Subject, this.Predicate, this.Object, true);

                clause.Evaluate(process);

                if (string.IsNullOrWhiteSpace(clause.subj) || string.IsNullOrWhiteSpace(clause.pred) || string.IsNullOrWhiteSpace(clause.obj))
                {
                    process.Log(LogLevel.Diagnostic, $"In element <deletetriple>: Could not delete triple with missing elements.  Subject: {clause.subj}  Predicate: {clause.pred}  Object: {clause.obj}");
                    return(process.Bot.Config.DefaultTriple);
                }

                var triples = process.Bot.Triples.Match(clause);

                if (triples.Count == 0)
                {
                    process.Log(LogLevel.Diagnostic, $"In element <deletetriple>: No such triple exists.  Subject: {clause.subj}  Predicate: {clause.pred}  Object: {clause.obj}");
                    return(process.Bot.Config.DefaultTriple);
                }

                var index = triples.Single();

                process.Bot.Triples.Remove(index);
                process.Log(LogLevel.Diagnostic, $"In element <deletetriple>: Deleted the triple with key {index}.  Subject: {clause.subj}  Predicate: {clause.pred}  Object: {clause.obj}");
                return(index.ToString());
            }