private static object ParseDateCreatedFilter(string text) { if (string.IsNullOrEmpty(text)) { return(null); } switch (text.ToLowerInvariant()) { case "today": case "yesterday": case "last_7_days": case "last_30_days": case "month_to_date": case "last_month": case "year_to_date": case "last_year": return(text); } if (text.StartsWith(">") || text.StartsWith("<")) { var isGreater = text[0] == '>'; text = text.Substring(1); var hasEqual = text.StartsWith("="); if (hasEqual) { text = text.Substring(1); } if (TryParseUtcDate(text, out var dt)) { var filter = new CreatedFilter(); if (isGreater) { filter.Min = dt; filter.ExcludeMin = !hasEqual; } else { filter.Max = dt; filter.ExcludeMax = !hasEqual; } } } else { var match = Regex.Match(text, BETWEEN_PATTERN, RegexOptions.IgnoreCase); if (match.Success) { if (TryParseUtcDate(match.Groups[1].Value, out var from) && TryParseUtcDate(match.Groups[2].Value, out var to)) { return(new CreatedFilter { Min = from, Max = to, ExcludeMin = false, ExcludeMax = true, }); } } } return(null); }
public Task <IEnumerable <Inventory> > GetByCreated(CreatedFilter filter) { return(Task.FromResult(_dataService.GetByCreated(filter))); }