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);
            }
        }
Exemplo n.º 2
0
        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());
        }
Exemplo n.º 3
0
 private string GetRegionString(BlizzardRegion region)
 {
     return(region.ToString().ToUpper());
 }