public uint? GetRateLimit(UUID user, string method)
{
method = method.Trim();
QueryFilter filter = new QueryFilter();
filter.andFilters["user"] = user;
filter.andFilters["method"] = method;
List<string> query = GD.Query(new string[1] { "rate" }, c_table_access, filter, null, 0, 1);
if (query.Count < 1 && method != string.Empty)
{
filter.andFilters["method"] = "";
query = GD.Query(new string[1] { "rate" }, c_table_access, filter, null, 0, 1);
}
if (query.Count < 1)
{
return defaultAccessRate.ContainsKey(method) ? defaultAccessRate[method] : (defaultAccessRate.ContainsKey("") ? defaultAccessRate[""] : null);
}
else if (string.IsNullOrEmpty(query[0]))
{
return null;
}
else
{
return uint.Parse(query[0]);
}
}