public RequestRate(int requestCount, RequestRatePeriod period) { if (requestCount <= 0) { throw new ArgumentOutOfRangeException(nameof(requestCount)); } Period = period; RequestCount = requestCount; }
public static bool TryParse(string str, out RequestRate requestRate) { if (str == null) { throw new ArgumentNullException(nameof(str)); } requestRate = null; str = str.Trim(); var parts = str.Split(new[] { "r/" }, StringSplitOptions.RemoveEmptyEntries); if (parts.Length != 2) { return(false); } if (!int.TryParse(parts[0].Trim(), out var requestCount)) { return(false); } if (requestCount <= 0) { return(false); } RequestRatePeriod period = RequestRatePeriod.Day; switch (parts[1].Trim().ToLowerInvariant()) { case "s": case "sec": case "second": period = RequestRatePeriod.Second; break; case "m": case "min": case "minute": period = RequestRatePeriod.Minute; break; case "h": case "hour": period = RequestRatePeriod.Hour; break; case "d": case "day": period = RequestRatePeriod.Day; break; default: return(false); } requestRate = new RequestRate(requestCount, period); return(true); }