protected virtual TimeInfo GetTimeInfo(string time, string offset, DateTime?minimumUtcStartDate = null) { string field = DefaultDateField; if (!String.IsNullOrEmpty(time) && time.Contains("|")) { string[] parts = time.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries); field = parts.Length > 0 && AllowedDateFields.Contains(parts[0]) ? parts[0] : DefaultDateField; time = parts.Length > 1 ? parts[1] : null; } var utcOffset = GetOffset(offset); // range parsing needs to be based on the user's local time. var range = DateTimeRange.Parse(time, Foundatio.Utility.SystemClock.OffsetUtcNow.ToOffset(utcOffset)); var timeInfo = new TimeInfo { Field = field, Offset = utcOffset, Range = range }; if (minimumUtcStartDate.HasValue) { timeInfo.ApplyMinimumUtcStartDate(minimumUtcStartDate.Value); } timeInfo.AdjustEndTimeIfMaxValue(); return(timeInfo); }
public StackController( IStackRepository stackRepository, IOrganizationRepository organizationRepository, IProjectRepository projectRepository, IEventRepository eventRepository, IWebHookRepository webHookRepository, WebHookDataPluginManager webHookDataPluginManager, IQueue <WebHookNotification> webHookNotificationQueue, ICacheClient cacheClient, BillingManager billingManager, FormattingPluginManager formattingPluginManager, SemanticVersionParser semanticVersionParser, IMapper mapper, StackQueryValidator validator, AppOptions options, ILoggerFactory loggerFactory ) : base(stackRepository, mapper, validator, loggerFactory) { _stackRepository = stackRepository; _organizationRepository = organizationRepository; _projectRepository = projectRepository; _eventRepository = eventRepository; _webHookRepository = webHookRepository; _webHookDataPluginManager = webHookDataPluginManager; _webHookNotificationQueue = webHookNotificationQueue; _cache = cacheClient; _billingManager = billingManager; _formattingPluginManager = formattingPluginManager; _semanticVersionParser = semanticVersionParser; _options = options; AllowedDateFields.AddRange(new[] { StackIndex.Alias.FirstOccurrence, StackIndex.Alias.LastOccurrence }); DefaultDateField = StackIndex.Alias.LastOccurrence; }