public static async Task RunGiveAwayEventAsync(PlannedEvent @event, DatabaseContext dbctx) { var _discordClient = (DiscordClient)ServiceProvider.GetService(typeof(DiscordClient)); var channel = await _discordClient.GetChannelAsync(@event.ChannelID); if (@event.ResponseMessageID != null) { var lang = await Language.GetLanguageFromGuildIdAsync((ulong)channel.GuildId, dbctx); var msg = await channel.GetMessageAsync((ulong)@event.ResponseMessageID); var people = (await msg.GetReactionsAsync(DiscordEmoji.FromName(_discordClient, ":everybodyvotes:"))).Where(x => x.Id != _discordClient.CurrentUser.Id && !x.IsBot); var discordUsers = people as DiscordUser[] ?? people.ToArray(); if (discordUsers.Length == 0) { await channel.SendMessageAsync(lang.GiveawayResultsNoReactions); } else { await channel.SendMessageAsync(string.Format(lang.GiveawayResultsWon, discordUsers[RandomGenerator.Next(0, discordUsers.Length)].Mention, msg.Embeds[0].Title)); } } @event.Handled = true; }
public void loadEvent(PlannedEvent pEvent) { currentEvent = pEvent; EventName = pEvent.EventName; EventTime = pEvent.EventTime; initPos(pEvent.startPos, pEvent.endPos); }
private async void initLocation() { try { var location = await Geolocation.GetLastKnownLocationAsync(); if (location != null) { Position current, target; //for test Configs.Lat = 42.3700530; Configs.Lng = -71.1174180; //Configs.Lat = location.Latitude; //Configs.Lng = location.Longitude; current = new Position(Configs.Lat, Configs.Lng); /* * ScheduleMap.MoveToRegion(new MapSpan(current, 0.01, 0.01)); * ScheduleMap.Pins.Add(new Pin * { * Label = "Xamarin Test", * Position = current * });*/ double upcomingLat = 42.3549540; //Boston Common double upcomingLng = -71.0654890; target = new Position(upcomingLat, upcomingLng); /* * ScheduleMap.Pins.Add(new Pin * { * Label = "Target", * Position = target * });*/ DateTime temp = new DateTime(2018, 8, 4, 9, 0, 0); PlannedEvent pEvent = new PlannedEvent { EventName = "Planned Test", startPos = current, endPos = target, EventTime = temp.ToString("yyyy-MM-dd hh:mm") }; viewModel.loadEvent(pEvent); BindingContext = viewModel; } } catch (FeatureNotSupportedException fnsEx) { // Handle not supported on device exception System.Diagnostics.Debug.WriteLine(fnsEx.Message); } catch (PermissionException pEx) { // Handle permission exception System.Diagnostics.Debug.WriteLine(pEx.Message); } catch (Exception ex) { // Unable to get location System.Diagnostics.Debug.WriteLine(ex.Message); } }
public static Task RunReminderEvent(PlannedEvent @event, DatabaseContext dbctx) { if (@event.Type != PlannedEventType.Reminder) { throw new ArgumentException("The parameter @event needs to be an Reminder", nameof(@event)); } if (dbctx == null) { throw new ArgumentNullException(nameof(dbctx)); } return(RunReminderEventAsync(@event, dbctx)); }
public EventDetailViewModel(PlannedEvent pEvent, GoogleRoute rt) { currentEvent = pEvent; route = rt; EventTitle = pEvent.EventName; EventTime = pEvent.EventTime; StartPos = route.getStartLocation(); EndPos = route.getEndLocation(); RemainingTime = pEvent.RemainingTime; RequiredTime = pEvent.RequiredTime; stepModels = new ObservableCollection <StepDisplayModel>(); loadRouteDetails(); loadStatistics(); }
public void Post([FromBody] PlannedEvent model) { var jsonModel = JsonConvert.DeserializeObject <PlannedEvent[]>(System.IO.File.ReadAllText(_pathPlannedEvents)); foreach (var token in jsonModel) { if (token.lang == model.lang) { token.events.AddRange(model.events); } } var newJson = JsonConvert.SerializeObject(jsonModel); System.IO.File.WriteAllText(_pathPlannedEvents, newJson); }
private void initLocation(PlannedEvent pe) { Position startPos = pe.startPos, endPos = pe.endPos; EventDetailMap.Pins.Add(new Pin { Label = "Start", Position = startPos }); EventDetailMap.Pins.Add(new Pin { Label = "Target", Position = endPos }); EventDetailMap.MoveToRegion(new MapSpan(startPos, 0.01, 0.01)); }
public static async Task RunReminderEventAsync(PlannedEvent @event, DatabaseContext dbctx) { var _discordClient = (DiscordClient)ServiceProvider.GetService(typeof(DiscordClient)); var channel = await _discordClient.GetChannelAsync(@event.ChannelID); var lang = await Language.GetLanguageFromGuildIdAsync((ulong)channel.GuildId, dbctx); if ([email protected]) { DiscordMessageBuilder a = new(); a.WithReply(@event.MessageID, true); a.WithContent($"<@!{@event.UserID.ToString(CultureInfo.InvariantCulture)}>"); a.AddEmbed(new DiscordEmbedBuilder().WithTitle(lang.ReminderContent).WithDescription(@event.Data).Build()); await a.SendAsync(channel); } @event.Handled = true; }
public static async Task RunEmojiEventAsync(PlannedEvent @event, DatabaseContext dbctx) { var _discordClient = (DiscordClient)ServiceProvider.GetService(typeof(DiscordClient)); var channel = await _discordClient.GetChannelAsync(@event.ChannelID); if (@event.ResponseMessageID != null) { var lang = await Language.GetLanguageFromGuildIdAsync((ulong)channel.GuildId, dbctx); var msg = await channel.GetMessageAsync((ulong)@event.ResponseMessageID); var bob = new DiscordEmbedBuilder(msg.Embeds[0]); var yesVotes = (await msg.GetReactionsAsync(DiscordEmoji.FromName(_discordClient, ":everybodyvotes:"))).Count(x => x.Id != _discordClient.CurrentUser.Id && !x.IsBot); var noVotes = (await msg.GetReactionsAsync(DiscordEmoji.FromName(_discordClient, ":nobodyvotes:"))).Count(x => x.Id != _discordClient.CurrentUser.Id && !x.IsBot); var pollResultText = new StringBuilder(); pollResultText.Append(lang.PollResultsStart).Append(" **"); if (yesVotes > noVotes) { pollResultText.Append(lang.PollResultsResultYes); } else if (yesVotes == noVotes) { pollResultText.Append(lang.PollResultsResultUndecided); } else { pollResultText.Append(lang.PollResultsResultNo); } pollResultText.Append("**\n").Append(lang.PollResultsResultYes).Append(':').Append(yesVotes).Append(' ').Append(lang.PollResultsResultNo).Append(':').Append(noVotes).Append(' ').Append(lang.PollResultsResultUndecided).Append(": ") .Append(channel.Guild.Members.Count(x => !x.Value.IsBot) - (yesVotes + noVotes)); bob.WithDescription(pollResultText.ToString()); await msg.ModifyAsync(bob.Build()); } @event.Handled = true; }
public EventDetailPage(PlannedEvent pEvent, GoogleRoute route) { InitializeComponent(); viewModel = new EventDetailViewModel(pEvent, route); BindingContext = viewModel; StepList.ItemsSource = viewModel.stepModels; AccuracyList.ItemsSource = viewModel.routeStatList; AccuracyList.ItemTapped += (object sender, ItemTappedEventArgs e) => { if (e.Item == null) { return; } Task.Delay(500); if (sender is ListView lv) { lv.SelectedItem = null; } Database.currentAccModel = (e.Item as EventDetailViewModel.StatisticModel).AccuracyPerformances; loadStatisticsDetail(); }; StepList.ItemTapped += (object sender, ItemTappedEventArgs e) => { if (e.Item == null) { return; } Task.Delay(500); if (sender is ListView lv) { lv.SelectedItem = null; } }; initLocation(pEvent); drawPolylines(route); }
public void AddObjectToQueue(PlannedEvent plannedEvent) { plannedEvent.NextStateTick = CurrentTick + DayNightCycle.HalfDayLength - (int)((DayNightCycle.HalfDayLength / 10) * Game.Random.NextDouble()); _queue.Add(plannedEvent); }
public void RemoveObjectFromQueue(PlannedEvent plannedEvent) { _queue.Remove(plannedEvent); }