public static RelativeTimeSpanQueryValue RelativeToNow (DateTime since) { RelativeTimeSpanQueryValue qv = new RelativeTimeSpanQueryValue (); qv.SetRelativeValue ((since - DateTime.Now).TotalSeconds, TimeFactor.Second); qv.DetermineFactor (); return qv; }
public static RelativeTimeSpanQueryValue RelativeToNow(DateTime since) { var qv = new RelativeTimeSpanQueryValue(); qv.SetRelativeValue((since - DateTime.Now).TotalSeconds, TimeFactor.Second); qv.DetermineFactor(); return(qv); }
public void QueryValueSql () { QueryValue qv; qv = new DateQueryValue (); qv.ParseUserQuery ("2007-03-9"); Assert.AreEqual (new DateTime (2007, 3, 9), qv.Value); Assert.AreEqual ("2007-03-09", qv.ToUserQuery ()); Assert.AreEqual ("1173420000", qv.ToSql ()); qv = new StringQueryValue (); qv.ParseUserQuery ("foo 'bar'"); Assert.AreEqual ("foo 'bar'", qv.Value); Assert.AreEqual ("foo 'bar'", qv.ToUserQuery ()); Assert.AreEqual ("foo bar", qv.ToSql ()); qv = new StringQueryValue (); qv.ParseUserQuery ("Foo Baño"); Assert.AreEqual ("Foo Baño", qv.Value); Assert.AreEqual ("Foo Baño", qv.ToUserQuery ()); Assert.AreEqual ("foo bano", qv.ToSql ()); qv = new ExactStringQueryValue (); qv.ParseUserQuery ("foo 'bar'"); Assert.AreEqual ("foo 'bar'", qv.Value); Assert.AreEqual ("foo 'bar'", qv.ToUserQuery ()); Assert.AreEqual ("foo ''bar''", qv.ToSql ()); qv = new IntegerQueryValue (); qv.ParseUserQuery ("22"); Assert.AreEqual (22, qv.Value); Assert.AreEqual ("22", qv.ToUserQuery ()); Assert.AreEqual ("22", qv.ToSql ()); qv = new FileSizeQueryValue (); qv.ParseUserQuery ("2048 KB"); Assert.AreEqual (2097152, qv.Value); Assert.AreEqual ("2.048 KB", qv.ToUserQuery ()); Assert.AreEqual ("2097152", qv.ToSql ()); // TODO this will break once an it_IT translation for "days ago" etc is committed qv = new RelativeTimeSpanQueryValue (); qv.ParseUserQuery ("2 days ago"); Assert.AreEqual (-172800, qv.Value); Assert.AreEqual ("2 days ago", qv.ToUserQuery ()); // TODO this will break once an it_IT translation for "minutes" etc is committed qv = new TimeSpanQueryValue (); qv.ParseUserQuery ("4 minutes"); Assert.AreEqual (240, qv.Value); Assert.AreEqual ("4 minutes", qv.ToUserQuery ()); Assert.AreEqual ("240000", qv.ToSql ()); }
private void ParseRelativeDateCondition (QueryTermNode term, string val, QueryField field, string op) { string new_op = op.Replace ('>', '^'); new_op = new_op.Replace ('<', '>'); new_op = new_op.Replace ('^', '<'); RelativeTimeSpanQueryValue date_value = new RelativeTimeSpanQueryValue (); // Have to flip the operator b/c of how we used to construct the SQL query term.Operator = date_value.OperatorSet [new_op]; // Have to negate the value b/c of how we used to constuct the SQL query date_value.SetRelativeValue (Convert.ToInt64 (val), TimeFactor.Second); term.Value = date_value; }