using Volo.Abp.Data;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Guids;
using Volo.Abp.Uow;
namespace CMS.Plugin.PipeLineLems.Domain.MyTestEntityNames
{
///
/// MyTestEntityName种子数据提供程序
///
public class MyTestEntityNameDataSeedContributor : IDataSeedContributor, ITransientDependency
{
private readonly IUnitOfWorkManager _unitOfWorkManager;
private readonly IMyTestEntityNameRepository _mytestentitynameRepository;
private readonly IGuidGenerator _guidGenerator;
///
/// Initializes a new instance of the class.
///
/// The unit of work manager.
/// The unique identifier generator.
/// The work section repository.
public MyTestEntityNameDataSeedContributor(IUnitOfWorkManager unitOfWorkManager, IGuidGenerator guidGenerator, IMyTestEntityNameRepository mytestentitynameRepository)
{
_unitOfWorkManager = unitOfWorkManager;
_mytestentitynameRepository = mytestentitynameRepository;
_guidGenerator = guidGenerator;
}
///
public async Task SeedAsync(DataSeedContext context)
{
if (context.Properties.ContainsKey(CMSPluginDbProperties.ConnectionStringName) && context.Properties[CMSPluginDbProperties.ConnectionStringName]?.ToString() == CMSPluginDbProperties.ConnectionStringName)
{
try
{
//using var unitofWork = _unitOfWorkManager.Begin(requiresNew: true);
//await unitofWork.SaveChangesAsync();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
if (context.Properties.ContainsKey("SeedTestData") && context.Properties["SeedTestData"]?.ToString() == "SeedTestData")
{
try
{
await SeedMyTestEntityNameDataAsync();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
///
/// Seeds the work section data asynchronous.
///
private async Task SeedMyTestEntityNameDataAsync()
{
using var unitofWork = _unitOfWorkManager.Begin(requiresNew: true);
if (await _mytestentitynameRepository.GetCountAsync() == 0)
{
var MyTestEntityNames = new List();
for (int i = 1; i <= 80; i++)
{
var mytestentityname = new MyTestEntityName(_guidGenerator.Create(), $"MyTestEntityName_Code{i}", $"MyTestEntityName_Name{i}", i, $"MyTestEntityName_Remark{i}");
MyTestEntityNames.Add(mytestentityname);
}
await _mytestentitynameRepository.InsertManyAsync(MyTestEntityNames);
await unitofWork.SaveChangesAsync();
}
}
}
}