diff --git a/src/Services/Identity/Identity.API/Data/ConfigurationDbContextSeed.cs b/src/Services/Identity/Identity.API/Data/ConfigurationDbContextSeed.cs index bb41f0d0a..b109bf896 100644 --- a/src/Services/Identity/Identity.API/Data/ConfigurationDbContextSeed.cs +++ b/src/Services/Identity/Identity.API/Data/ConfigurationDbContextSeed.cs @@ -1,6 +1,7 @@ using IdentityServer4.EntityFramework.DbContexts; using IdentityServer4.EntityFramework.Mappers; using Microsoft.eShopOnContainers.Services.Identity.API.Configuration; +using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using System.Collections.Generic; using System.Linq; @@ -10,47 +11,36 @@ namespace Microsoft.eShopOnContainers.Services.Identity.API.Data { public class ConfigurationDbContextSeed { - public async Task SeedAsync(ConfigurationDbContext context,IConfiguration configuration) + public async Task SeedAsync(ConfigurationDbContext context, IConfiguration configuration) { - //callbacks urls from config: - var clientUrls = new Dictionary(); - - clientUrls.Add("Mvc", configuration.GetValue("MvcClient")); - clientUrls.Add("Spa", configuration.GetValue("SpaClient")); - clientUrls.Add("Xamarin", configuration.GetValue("XamarinCallback")); - clientUrls.Add("LocationsApi", configuration.GetValue("LocationApiClient")); - clientUrls.Add("MarketingApi", configuration.GetValue("MarketingApiClient")); - clientUrls.Add("BasketApi", configuration.GetValue("BasketApiClient")); - clientUrls.Add("OrderingApi", configuration.GetValue("OrderingApiClient")); + var clientUrls = new Dictionary + { + {"Mvc", configuration.GetValue("MvcClient")}, + {"Spa", configuration.GetValue("SpaClient")}, + {"Xamarin", configuration.GetValue("XamarinCallback")}, + {"LocationsApi", configuration.GetValue("LocationApiClient")}, + {"MarketingApi", configuration.GetValue("MarketingApiClient")}, + {"BasketApi", configuration.GetValue("BasketApiClient")}, + {"OrderingApi", configuration.GetValue("OrderingApiClient")} + }; - if (!context.Clients.Any()) + if (!await context.Clients.AnyAsync()) { - foreach (var client in Config.GetClients(clientUrls)) - { - await context.Clients.AddAsync(client.ToEntity()); - } - await context.SaveChangesAsync(); + context.Clients.AddRange(Config.GetClients(clientUrls).Select(client => client.ToEntity())); } - if (!context.IdentityResources.Any()) + if (!await context.IdentityResources.AnyAsync()) { - foreach (var resource in Config.GetResources()) - { - await context.IdentityResources.AddAsync(resource.ToEntity()); - } - await context.SaveChangesAsync(); + context.IdentityResources.AddRange(Config.GetResources().Select(resource => resource.ToEntity())); } - if (!context.ApiResources.Any()) + if (!await context.ApiResources.AnyAsync()) { - foreach (var api in Config.GetApis()) - { - await context.ApiResources.AddAsync(api.ToEntity()); - } - - await context.SaveChangesAsync(); + context.ApiResources.AddRange(Config.GetApis().Select(api => api.ToEntity())); } + + await context.SaveChangesAsync(); } } }