public async Task Configuration() { var config = _epgpConfigurationService.GetConfiguration(); var pageBuilder = new PageFormatBuilder() .AddColumn("Configuration Property Key") .AddColumn("Property Name") .AddColumn("Value") .AlternateRowColors(); var properties = config.GetType().GetProperties() .Where(pi => Attribute.IsDefined(pi, typeof(ConfigurationKeyAttribute))); foreach (var propertyInfo in properties) { var key = propertyInfo.GetCustomAttribute <ConfigurationKeyAttribute>().Key; var name = propertyInfo.Name; var value = propertyInfo.GetValue(config); string valueString = string.Empty; if (((int)value).ToString() != value.ToString()) { valueString = $" ({value.ToString()})"; } pageBuilder.AddRow(new[] { key.ToString(), name, $"{(int)value}{valueString}" }); } await _pageService.SendPages(Context.Channel, pageBuilder.Build()); }
public async Task Template() { var config = _epgpConfigurationService.GetConfiguration(); if (!config.Templates.Any()) { await ReplyAsync($"No raid templates are currently configured. Try !{GroupName} help"); return; } var pageBuilder = new PageFormatBuilder() .AddColumn("Template ID") .AddColumn("EP Start Bonus") .AddColumn("EP End Bonus") .AddColumn("Duration") .AlternateRowColors(); foreach (var template in config.Templates) { pageBuilder.AddRow(new[] { template.TemplateId, $"{template.StartBonus} EP", $"{template.EndBonus} EP", TimeSpan.FromMinutes(template.RaidDurationMinutes).ToString("g") }); } await _pageService.SendPages(Context.Channel, pageBuilder.Build()); }
public EpgpTransaction GetTransaction(EpgpAlias alias, int value, string memo, TransactionType transactionType) { var config = _configurationService.GetConfiguration(); var currencyType = transactionType.GetAttributeOfType <CurrencyAttribute>().Currency; int change; switch (currencyType) { case Currency.Ep: change = alias.EffortPoints + value < config.EpMinimum ? config.EpMinimum - alias.EffortPoints : value; break; case Currency.Gp: change = alias.GearPoints + value < config.GpMinimum ? config.GpMinimum - alias.GearPoints : value; break; default: throw new ArgumentOutOfRangeException(); } return(new EpgpTransaction { Id = Guid.NewGuid(), AliasId = alias.Id, Memo = memo, TransactionDateTime = DateTime.UtcNow, TransactionType = transactionType, Value = change }); }
private void AliasAdded(object?sender, EpgpAlias e) { var config = _configurationService.GetConfiguration(); var ep = config.EpMinimum; var gp = config.GpMinimum; Set(e.Name, ep, gp, "User initialization"); }
public async Task <EpgpRaid> CreateNew(string templateId) { var nexusCrystalData = await _buzzBotDbContext.LiveItemData.FirstOrDefaultAsync(itm => itm.ItemId == NexusCrystalId); var nexusCrystalPrice = nexusCrystalData?.MarketValue ?? 10000; //var cts = new CancellationTokenSource(TimeSpan.FromSeconds(1)); //int nexusCrystalPrice; //try //{ // var nexusCrystalData = await _nexusHubClient.GetItem(NexusCrystalId, cts.Token); // nexusCrystalPrice = nexusCrystalData?.Stats?.Current?.MarketValue ?? 100000; //} //catch (TaskCanceledException) //{ // nexusCrystalPrice = 100000; //} var template = _configurationService.GetConfiguration().Templates .FirstOrDefault(t => t.TemplateId.Equals(templateId)); if (template == null) { return(null); } var startTime = DateTime.UtcNow + TimeSpan.FromMinutes(template.SignUpDurationMinutes); //var startTimeEst = TimeZoneInfo.ConvertTimeFromUtc(startTime, tzi); return(new EpgpRaid { NexusCrystalValue = nexusCrystalPrice, StartBonus = template.StartBonus, EndBonus = template.EndBonus, Duration = TimeSpan.FromMinutes(template.RaidDurationMinutes), TimeBonusDuration = TimeSpan.FromMinutes(template.TimeBonusDurationMinutes), Capacity = template.RaidCapacity, StartTime = startTime, TimeBonus = template.TimeBonus }); }