protected override void HandleCommand(IChatClient chatClient, CommandReceivedEventArgs eventArgs) { int offset; if (eventArgs.Arguments.Count == 0) { offset = 0; } else { if (!int.TryParse(eventArgs?.Arguments?.ElementAtOrDefault(0), out int chatUserOffset) || chatUserOffset > 18 || chatUserOffset < -18) { chatClient.SendMessage("UTC offset must be a whole number between -18 and +18"); return; } offset = chatUserOffset; } DateTimeZone timeZone = DateTimeZone.ForOffset(Offset.FromHours(offset)); List <Instant> streamTimes = Repository.List(DataItemPolicy <ScheduleEntity> .All()).Select(x => x.Instant).ToList(); string message = $"Our usual schedule (at UTC {offset}) is: " + string.Join(", ", streamTimes.Select(x => GetTimeDisplay(x, timeZone))); chatClient.SendMessage(message); }
protected override async void HandleCommand(IChatClient chatClient, CommandReceivedEventArgs eventArgs) { var lookup = eventArgs?.Arguments?.ElementAtOrDefault(0); int offset; string timezoneDisplay; bool useTwentyFourHourTime = false; if (eventArgs?.Arguments?.Count == 0) { offset = 0; useTwentyFourHourTime = true; timezoneDisplay = $"at UTC {offset:+#;-#;+0}"; } else { bool isValidInteger = int.TryParse(lookup, out int chatUserOffset); if (isValidInteger && chatUserOffset < 18 && chatUserOffset > -18) { useTwentyFourHourTime = true; offset = chatUserOffset; timezoneDisplay = $"at UTC {offset:+#;-#;+0}"; } else if (isValidInteger && (chatUserOffset > 18 || chatUserOffset < -18)) { chatClient.SendMessage(Messages.OUT_OF_RANGE); return; } else { var client = new HttpClient(); TimezoneLookupResult lookupResult = await _timezoneLookup.GetTimezoneInfoAsync(client, lookup); if (!lookupResult.Success) { chatClient.SendMessage(lookupResult.Message); return; } offset = lookupResult.Offset; timezoneDisplay = $"in {lookupResult.TimezoneName}"; } } DateTimeZone timeZone = DateTimeZone.ForOffset(Offset.FromHours(offset)); List <Instant> streamTimes = Repository.List(DataItemPolicy <ScheduleEntity> .All()).Select(x => x.Instant).ToList(); string message = $"Our usual schedule ({timezoneDisplay}) is: " + string.Join(", ", streamTimes.Select(x => GetTimeDisplay(x, timeZone, useTwentyFourHourTime))); chatClient.SendMessage(message); }
public List <GameServer> GetGameServers() { _logger.LogDebug("Returning all game servers from GameServerProvider"); var result = _repository.List(DataItemPolicy <GameServer> .All()); // Force stats nav prop to be loaded foreach (var gameServer in result) { _repository.Single(DataItemPolicy <GameServerCurrentStats> .ById(gameServer.Id)); } return(result); }
protected override void HandleCommand(IChatClient chatClient, CommandReceivedEventArgs eventArgs) { if (!int.TryParse(eventArgs?.Arguments?.ElementAtOrDefault(0), out int offset) || offset > 18 || offset < -18) { return; } DateTimeZone timeZone = DateTimeZone.ForOffset(Offset.FromHours(offset)); List <Instant> streamTimes = Repository.List(DataItemPolicy <ScheduleEntity> .All()).Select(x => x.Instant).ToList(); string message = "Our usual schedule is: " + string.Join(", ", streamTimes.Select(x => GetTimeDisplay(x, timeZone))); chatClient.SendMessage(message); }
private QuizQuestion GetRandomQuestion() { return(MyRandom.ChooseRandomItem(_repository.List(DataItemPolicy <QuizQuestion> .All())).ChosenItem); }