private double?ToFee(EurekahedgeLockupAntlrVisitor.TokenMatch percentMatch) { double result; if (!double.TryParse(percentMatch.Value.Substring(0, percentMatch.Value.Length - 1), NumberStyles.Float, formatProvider, out result)) { return(null); } return(result > 0 && result < 10 ? result / 100D : (double?)null); }
private int?ToDuration(EurekahedgeLockupAntlrVisitor.TokenMatch numberMatch, EurekahedgeLockupAntlrVisitor.TokenMatch periodMatch) { double result; if (numberMatch == null) { result = 1; } else if (numberMatch.TokenType == EurekahedgeLockupTokenType.WordNumberValue) { result = ToNumber(numberMatch.Value); } else if (!double.TryParse(numberMatch.Value, NumberStyles.Float, formatProvider, out result)) { return(null); } double multi; switch (periodMatch.TokenType) { case EurekahedgeLockupTokenType.Year: multi = 12; break; case EurekahedgeLockupTokenType.Quarter: multi = 3; break; case EurekahedgeLockupTokenType.Month: case EurekahedgeLockupTokenType.Week: case EurekahedgeLockupTokenType.Day: multi = 1; break; default: return(null); } return((int)Math.Truncate(result * multi)); }