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(); } } } }