public override TrackLink ToLink() { TrackLink link = new TrackLink("8tracks"); link["MixId"] = MixId.ToString(CultureInfo.InvariantCulture); link["TokenId"] = TokenId.ToString(CultureInfo.InvariantCulture); link["TrackId"] = TrackId.ToString(CultureInfo.InvariantCulture); return(link); }
public void SetPostParameter(WebApiPostParameter postParameter) { if (TokenId != null && TokenId != "") { postParameter.Content.Add("TokenID", TokenId.ToString()); } else { throw new Exception("Need TokenId"); } }
private object EvalBooleanOperator(TokenId op, object lValue, object rValue) { bool v1 = Util.ToBool(lValue); bool v2 = Util.ToBool(rValue); switch (op) { case TokenId.Or: return(v1 | v2); case TokenId.And: return(v1 & v2); case TokenId.EqualEqual: return(v1 == v2); case TokenId.NotEqual: return(v1 != v2); default: throw new ParseException("BinaryNotSupport '{0}' between type of '{1}' and '{2}'", op.ToString(), lValue.GetType().Name, rValue.GetType().Name); } }
private object EvalStringOperator(TokenId op, object lValue, object rValue) { switch (op) { case TokenId.Plus: { if (lValue == null) { return(rValue); } else { return(lValue.ToString() + rValue); } } case TokenId.EqualEqual: { if (lValue == null) { if (rValue == null) { return(true); } else { return(false); } } else { return(lValue.ToString().Equals(rValue)); } } case TokenId.NotEqual: { if (lValue == null) { if (rValue == null) { return(false); } else { return(true); } } else { return(!lValue.ToString().Equals(rValue)); } } default: throw new ParseException("BinaryNotSupport '{0}' between type of '{1}' and '{2}'", op.ToString(), lValue.GetType().Name, rValue.GetType().Name); } }
private object EvalDecimalOperator(TokenId op, decimal v1, decimal v2) { switch (op) { case TokenId.Plus: case TokenId.PlusEqual: return(v1 + v2); case TokenId.Minus: case TokenId.MinusEqual: return(v1 - v2); case TokenId.Star: case TokenId.StarEqual: return(v1 * v2); case TokenId.Slash: case TokenId.SlashEqual: return(v1 / v2); case TokenId.Percent: case TokenId.PercentEqual: return(v1 % v2); case TokenId.EqualEqual: return(v1 == v2); case TokenId.Greater: return(v1 > v2); case TokenId.GreaterEqual: return(v1 >= v2); case TokenId.Less: return(v1 < v2); case TokenId.LessEqual: return(v1 <= v2); case TokenId.NotEqual: return(v1 != v2); default: throw new ParseException("BinaryNotSupport '{0}' between type of '{1}' and '{2}'", op.ToString(), v1.GetType().Name, v2.GetType().Name); } }
private bool EvalDateTimeOperator(TokenId op, DateTime lValue, DateTime rValue) { switch (op) { case TokenId.EqualEqual: { return(lValue == rValue); } case TokenId.Less: { return(lValue < rValue); } case TokenId.LessEqual: { return(lValue <= rValue); } case TokenId.Greater: { return(lValue > rValue); } case TokenId.GreaterEqual: { return(lValue >= rValue); } case TokenId.NotEqual: { return(lValue != rValue); } default: { throw new ParseException("BinaryNotSupport '{0}' between type of '{1}' and '{2}'", op.ToString(), lValue.GetType().Name, rValue.GetType().Name); } } }
private object EvalDoubleOperator(TokenId op, object lValue, object rValue) { if (lValue is decimal && rValue is decimal) { return(EvalDecimalOperator(op, (decimal)lValue, (decimal)rValue)); } double v1 = Util.ToDouble(lValue); double v2 = Util.ToDouble(rValue); switch (op) { case TokenId.Plus: case TokenId.PlusEqual: return(v1 + v2); case TokenId.Minus: case TokenId.MinusEqual: return(v1 - v2); case TokenId.Star: case TokenId.StarEqual: return(v1 * v2); case TokenId.Slash: case TokenId.SlashEqual: return(v1 / v2); case TokenId.Percent: case TokenId.PercentEqual: return(v1 % v2); case TokenId.EqualEqual: return(v1 == v2); case TokenId.Greater: return(v1 > v2); case TokenId.GreaterEqual: return(v1 >= v2); case TokenId.Less: return(v1 < v2); case TokenId.LessEqual: return(v1 <= v2); case TokenId.NotEqual: return(v1 != v2); default: throw new ParseException("BinaryNotSupport '{0}' between type of '{1}' and '{2}'", op.ToString(), lValue.GetType().Name, rValue.GetType().Name); } }
private object EvalIntOperator(TokenId op, object lValue, object rValue) { long result; switch (op) { case TokenId.Plus: case TokenId.PlusEqual: { result = (Convert.ToInt64(lValue) + Convert.ToInt64(rValue)); break; } case TokenId.Minus: case TokenId.MinusEqual: { result = (Convert.ToInt64(lValue) - Convert.ToInt64(rValue)); break; } case TokenId.Star: case TokenId.StarEqual: { result = (Convert.ToInt64(lValue) * Convert.ToInt64(rValue)); break; } case TokenId.Slash: case TokenId.SlashEqual: { return(Convert.ToDouble(lValue) / Convert.ToDouble(rValue)); } case TokenId.Percent: case TokenId.PercentEqual: { result = ((Convert.ToInt64(lValue) % Convert.ToInt64(rValue))); break; } case TokenId.EqualEqual: { return(Convert.ToInt64(lValue) == Convert.ToInt64(rValue)); } case TokenId.Less: { return(Convert.ToInt64(lValue) < Convert.ToInt64(rValue)); } case TokenId.LessEqual: { return(Convert.ToInt64(lValue) <= Convert.ToInt64(rValue)); } case TokenId.Greater: { return(Convert.ToInt64(lValue) > Convert.ToInt64(rValue)); } case TokenId.GreaterEqual: { return(Convert.ToInt64(lValue) >= Convert.ToInt64(rValue)); } case TokenId.NotEqual: { return(Convert.ToInt64(lValue) != Convert.ToInt64(rValue)); } default: { throw new ParseException("BinaryNotSupport '{0}' between type of '{1}' and '{2}'", op.ToString(), lValue.GetType().Name, rValue.GetType().Name); } } if (result >= Int32.MinValue && result <= Int32.MaxValue) { return((int)result); } else { return(result); } }
private object Evaluate(TokenId op, object lValue, object rValue) { object result = null; if (Util.IsInteger(lValue) && Util.IsInteger(rValue)) { result = EvalIntOperator(op, lValue, rValue); } else if (Util.IsNumber(lValue) && Util.IsNumber(rValue)) { result = EvalDoubleOperator(op, lValue, rValue); } else if (lValue is DateTime && rValue is DateTime) { result = EvalDateTimeOperator(op, (DateTime)lValue, (DateTime)rValue); } else if (lValue is bool && rValue is bool) { result = EvalBooleanOperator(op, lValue, rValue); } else if (Util.IsString(lValue) || Util.IsString(rValue)) { result = EvalStringOperator(op, lValue, rValue); } else { throw new ParseException("BinaryNotSupport '{0}' between type of '{1}' and '{2}'", op.ToString(), lValue.GetType().Name, rValue.GetType().Name); } return(result); }
private object Evaluate(TokenId op, object lValue, object rValue) { object result = null; if (Util.IsInteger(lValue) && Util.IsInteger(rValue)) { result = EvalIntOperator(op, lValue, rValue); } else if (Util.IsNumber(lValue) && Util.IsNumber(rValue)) { result = EvalDoubleOperator(op, lValue, rValue); } else if (lValue is DateTime && rValue is DateTime) { result = EvalDateTimeOperator(op, (DateTime)lValue, (DateTime)rValue); } else if (lValue is bool && rValue is bool) { result = EvalBooleanOperator(op, lValue, rValue); } else if (Util.IsString(lValue) || Util.IsString(rValue)) { result = EvalStringOperator(op, lValue, rValue); } else { throw new ParseException("BinaryNotSupport '{0}' between type of '{1}' and '{2}'", op.ToString(), lValue.GetType().Name, rValue.GetType().Name); } return result; }
private object EvalStringOperator(TokenId op, object lValue, object rValue) { switch (op) { case TokenId.Plus: { if (lValue == null) { return rValue; } else { return (lValue.ToString() + rValue); } } case TokenId.EqualEqual: { if (lValue == null) { if (rValue == null) return true; else return false; } else { return lValue.ToString().Equals(rValue); } } case TokenId.NotEqual: { if (lValue == null) { if (rValue == null) return false; else return true; } else { return !lValue.ToString().Equals(rValue); } } default: throw new ParseException("BinaryNotSupport '{0}' between type of '{1}' and '{2}'", op.ToString(), lValue.GetType().Name, rValue.GetType().Name); } }
private object EvalIntOperator(TokenId op, object lValue, object rValue) { long result; switch (op) { case TokenId.Plus: case TokenId.PlusEqual: { result = (Convert.ToInt64(lValue) + Convert.ToInt64(rValue)); break; } case TokenId.Minus: case TokenId.MinusEqual: { result = (Convert.ToInt64(lValue) - Convert.ToInt64(rValue)); break; } case TokenId.Star: case TokenId.StarEqual: { result = (Convert.ToInt64(lValue) * Convert.ToInt64(rValue)); break; } case TokenId.Slash: case TokenId.SlashEqual: { return (Convert.ToDouble(lValue) / Convert.ToDouble(rValue)); } case TokenId.Percent: case TokenId.PercentEqual: { result = ((Convert.ToInt64(lValue) % Convert.ToInt64(rValue))); break; } case TokenId.EqualEqual: { return Convert.ToInt64(lValue) == Convert.ToInt64(rValue); } case TokenId.Less: { return Convert.ToInt64(lValue) < Convert.ToInt64(rValue); } case TokenId.LessEqual: { return Convert.ToInt64(lValue) <= Convert.ToInt64(rValue); } case TokenId.Greater: { return Convert.ToInt64(lValue) > Convert.ToInt64(rValue); } case TokenId.GreaterEqual: { return Convert.ToInt64(lValue) >= Convert.ToInt64(rValue); } case TokenId.NotEqual: { return Convert.ToInt64(lValue) != Convert.ToInt64(rValue); } default: { throw new ParseException("BinaryNotSupport '{0}' between type of '{1}' and '{2}'", op.ToString(), lValue.GetType().Name, rValue.GetType().Name); } } if (result >= Int32.MinValue && result <= Int32.MaxValue) return (int)result; else return result; }
private object EvalDoubleOperator(TokenId op, object lValue, object rValue) { if (lValue is decimal && rValue is decimal) return EvalDecimalOperator(op, (decimal)lValue, (decimal)rValue); double v1 = Util.ToDouble(lValue); double v2 = Util.ToDouble(rValue); switch (op) { case TokenId.Plus: case TokenId.PlusEqual: return (v1 + v2); case TokenId.Minus: case TokenId.MinusEqual: return (v1 - v2); case TokenId.Star: case TokenId.StarEqual: return (v1 * v2); case TokenId.Slash: case TokenId.SlashEqual: return (v1 / v2); case TokenId.Percent: case TokenId.PercentEqual: return (v1 % v2); case TokenId.EqualEqual: return (v1 == v2); case TokenId.Greater: return (v1 > v2); case TokenId.GreaterEqual: return (v1 >= v2); case TokenId.Less: return (v1 < v2); case TokenId.LessEqual: return (v1 <= v2); case TokenId.NotEqual: return (v1 != v2); default: throw new ParseException("BinaryNotSupport '{0}' between type of '{1}' and '{2}'", op.ToString(), lValue.GetType().Name, rValue.GetType().Name); } }
private object EvalDecimalOperator(TokenId op, decimal v1, decimal v2) { switch (op) { case TokenId.Plus: case TokenId.PlusEqual: return (v1 + v2); case TokenId.Minus: case TokenId.MinusEqual: return (v1 - v2); case TokenId.Star: case TokenId.StarEqual: return (v1 * v2); case TokenId.Slash: case TokenId.SlashEqual: return (v1 / v2); case TokenId.Percent: case TokenId.PercentEqual: return (v1 % v2); case TokenId.EqualEqual: return (v1 == v2); case TokenId.Greater: return (v1 > v2); case TokenId.GreaterEqual: return (v1 >= v2); case TokenId.Less: return (v1 < v2); case TokenId.LessEqual: return (v1 <= v2); case TokenId.NotEqual: return (v1 != v2); default: throw new ParseException("BinaryNotSupport '{0}' between type of '{1}' and '{2}'", op.ToString(), v1.GetType().Name, v2.GetType().Name); } }
private bool EvalDateTimeOperator(TokenId op, DateTime lValue, DateTime rValue) { switch (op) { case TokenId.EqualEqual: { return lValue == rValue; } case TokenId.Less: { return lValue < rValue; } case TokenId.LessEqual: { return lValue <= rValue; } case TokenId.Greater: { return lValue > rValue; } case TokenId.GreaterEqual: { return lValue >= rValue; } case TokenId.NotEqual: { return lValue != rValue; } default: { throw new ParseException("BinaryNotSupport '{0}' between type of '{1}' and '{2}'", op.ToString(), lValue.GetType().Name, rValue.GetType().Name); } } }
private object EvalBooleanOperator(TokenId op, object lValue, object rValue) { bool v1 = Util.ToBool(lValue); bool v2 = Util.ToBool(rValue); switch (op) { case TokenId.Or: return v1 | v2; case TokenId.And: return v1 & v2; case TokenId.EqualEqual: return (v1 == v2); case TokenId.NotEqual: return (v1 != v2); default: throw new ParseException("BinaryNotSupport '{0}' between type of '{1}' and '{2}'", op.ToString(), lValue.GetType().Name, rValue.GetType().Name); } }