private async Task SendStatsCompleteNotifications(IServiceProvider serviceProvider, string key, BlizzardRegion region, string realm, string guild) { using (var serviceScope = serviceProvider.CreateScope()) { var repo = serviceScope.ServiceProvider.GetService <IDataRepository>(); var notifications = await repo.GetAndClearNotifications(NotificationRequestTypeEnum.RaiderIoStatsRequestComplete, key); string url = $"raideriostats/{region.ToString()}/{BlizzardService.FormatGuildName(guild)}/{BlizzardService.FormatRealmName(realm)}"; List <Task> mailTasks = new List <Task>(); var generatedEmail = this.mailGenerator.GenerateStatsCompleteEmail(url); foreach (var notification in notifications) { mailTasks.Add(this.mailSender.SendMailAsync( notification.Email, this.commonValues.AdminEmail, generatedEmail.Subject, generatedEmail.TextContent, generatedEmail.HtmlContent)); } await Task.WhenAll(mailTasks); } }
public async Task <string> GetMythicPlusDungeonData(BlizzardRegion region, string playerName, string realm) { string url = $"https://raider.io/api/v1/characters/profile?region={region.ToString().ToLower()}&" + $"realm={BlizzardService.FormatRealmName(realm)}&name={playerName}&fields=mythic_plus_scores"; var result = await this.throttler.Throttle(async() => { return(await client.GetAsync(url)); }); return(await result.Content.ReadAsStringAsync()); }
private string GetRegionString(BlizzardRegion region) { return(region.ToString().ToUpper()); }