Merge pull request #473 from PMExtra/dev

Fix about some async calls.
This commit is contained in:
Eduard Tomàs 2018-01-25 13:30:17 +01:00 committed by GitHub
commit c9f643e102
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

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