Browse Source

added seed data for mongodb.

pull/81/head
Halil İbrahim Kalkan 10 years ago
parent
commit
0c46ae922c
  1. 54
      src/AbpDesk/AbpDesk.MongoBlog/AbpDesk/Blogging/AbpDeskMongoBlogModule.cs
  2. 2
      src/AbpDesk/AbpDesk.MongoBlog/AbpDesk/Blogging/BlogPostComment.cs
  3. 20
      src/Volo.Abp/Volo/Abp/Modularity/ModuleLoader.cs
  4. 20
      src/Volo.Abp/Volo/Abp/Modularity/ModuleManager.cs

54
src/AbpDesk/AbpDesk.MongoBlog/AbpDesk/Blogging/AbpDeskMongoBlogModule.cs

@ -1,9 +1,14 @@
using System.Reflection;
using System.Linq;
using System.Reflection;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp;
using Volo.Abp.AspNetCore.Mvc;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.EmbeddedFiles;
using Volo.Abp.Guids;
using Volo.Abp.Modularity;
using Volo.Abp.MongoDB;
using Volo.Abp.Uow;
namespace AbpDesk.Blogging
{
@ -31,5 +36,52 @@ namespace AbpDesk.Blogging
services.AddAssemblyOf<AbpDeskMongoBlogModule>();
}
public override void OnApplicationInitialization(ApplicationInitializationContext context)
{
CreateSeedData(context);
}
private static void CreateSeedData(ApplicationInitializationContext context)
{
using (var scope = context.ServiceProvider.CreateScope())
{
using (var uow = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>().Begin())
{
var blogPostRepository = scope.ServiceProvider.GetRequiredService<IQueryableRepository<BlogPost>>();
if (blogPostRepository.Any())
{
return;
}
var guidGenerator = scope.ServiceProvider.GetRequiredService<IGuidGenerator>();
blogPostRepository.Insert(
new BlogPost(
guidGenerator.Create(),
"Demo blog post title one!",
"Sample body text for the first blog post"
)
);
blogPostRepository.Insert(
new BlogPost(
guidGenerator.Create(),
"Demo blog post title second!",
"Sample body text for the second blog post"
)
{
Comments =
{
new BlogPostComment("John", "Hi, this is a good post! Thank you :)"),
new BlogPostComment("Adam", "You are adam! :s")
}
}
);
uow.Complete();
}
}
}
}
}

2
src/AbpDesk/AbpDesk.MongoBlog/AbpDesk/Blogging/BlogPostComment.cs

@ -16,7 +16,7 @@ namespace AbpDesk.Blogging
[NotNull]
public virtual string Message { get; protected set; }
public BlogPostComment()
protected BlogPostComment()
{
}

20
src/Volo.Abp/Volo/Abp/Modularity/ModuleLoader.cs

@ -10,8 +10,8 @@ namespace Volo.Abp.Modularity
public class ModuleLoader : IModuleLoader
{
public AbpModuleDescriptor[] LoadModules(
IServiceCollection services,
Type startupModuleType,
IServiceCollection services,
Type startupModuleType,
PlugInSourceList plugInSources)
{
Check.NotNull(services, nameof(services));
@ -31,9 +31,9 @@ namespace Volo.Abp.Modularity
}
protected virtual void FillModules(
List<AbpModuleDescriptor> modules,
IServiceCollection services,
Type startupModuleType,
List<AbpModuleDescriptor> modules,
IServiceCollection services,
Type startupModuleType,
PlugInSourceList plugInSources)
{
//All modules starting from the startup module
@ -45,7 +45,7 @@ namespace Volo.Abp.Modularity
//Plugin modules
foreach (var moduleType in plugInSources.GetAllModules())
{
if(modules.Any(m => m.Type == moduleType))
if (modules.Any(m => m.Type == moduleType))
{
continue;
}
@ -61,7 +61,7 @@ namespace Volo.Abp.Modularity
SetModuleDependencies(modules, module);
}
}
protected virtual List<AbpModuleDescriptor> SortByDependency(List<AbpModuleDescriptor> modules, Type startupModuleType)
{
var sortedModules = modules.SortByDependencies(m => m.Dependencies);
@ -77,7 +77,7 @@ namespace Volo.Abp.Modularity
protected virtual IAbpModule CreateAndRegisterModule(IServiceCollection services, Type moduleType)
{
var module = (IAbpModule) Activator.CreateInstance(moduleType);
var module = (IAbpModule)Activator.CreateInstance(moduleType);
services.AddSingleton(moduleType, module);
return module;
}
@ -87,7 +87,7 @@ namespace Volo.Abp.Modularity
//PreConfigureServices
foreach (var module in modules.Where(m => m.Instance is IPreConfigureServices))
{
((IPreConfigureServices) module.Instance).PreConfigureServices(services);
((IPreConfigureServices)module.Instance).PreConfigureServices(services);
}
//ConfigureServices
@ -102,7 +102,7 @@ namespace Volo.Abp.Modularity
((IPostConfigureServices)module.Instance).PostConfigureServices(services);
}
}
protected virtual void SetModuleDependencies(List<AbpModuleDescriptor> modules, AbpModuleDescriptor module)
{
foreach (var dependedModuleType in AbpModuleHelper.FindDependedModuleTypes(module.Type))

20
src/Volo.Abp/Volo/Abp/Modularity/ModuleManager.cs

@ -1,6 +1,7 @@
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
using Microsoft.Extensions.Logging;
using Volo.DependencyInjection;
namespace Volo.Abp.Modularity
@ -11,17 +12,22 @@ namespace Volo.Abp.Modularity
private readonly List<AbpModuleDescriptor> _modules;
private readonly IEnumerable<IModuleLifecycleContributer> _lifecycleContributers;
private readonly ILogger<ModuleManager> _logger;
public ModuleManager(
AbpApplication application,
IEnumerable<IModuleLifecycleContributer> lifecycleContributers)
IEnumerable<IModuleLifecycleContributer> lifecycleContributers,
ILogger<ModuleManager> logger)
{
_lifecycleContributers = lifecycleContributers;
_logger = logger;
_modules = application.Modules.ToList();
}
public void InitializeModules(ApplicationInitializationContext context)
{
LogListOfModules();
foreach (var contributer in _lifecycleContributers)
{
foreach (var module in Modules)
@ -29,6 +35,18 @@ namespace Volo.Abp.Modularity
contributer.Initialize(context, module.Instance);
}
}
_logger.LogInformation("Initialized all modules.");
}
private void LogListOfModules()
{
_logger.LogInformation("Loaded modules:");
foreach (var module in Modules)
{
_logger.LogInformation("- " + module.Type.FullName);
}
}
public void ShutdownModules(ApplicationShutdownContext context)

Loading…
Cancel
Save