BaseServiceDataSeeder.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using BaseService.BaseData;
  2. using Microsoft.EntityFrameworkCore;
  3. using System;
  4. using System.Threading.Tasks;
  5. using Volo.Abp.Data;
  6. using Volo.Abp.DependencyInjection;
  7. using Volo.Abp.Domain.Repositories;
  8. using Volo.Abp.Guids;
  9. namespace BaseService.DataSeeder
  10. {
  11. public class BaseServiceDataSeeder : IDataSeedContributor, ITransientDependency
  12. {
  13. private readonly IRepository<DataDictionary, Guid> _dataDicRepository;
  14. private readonly IRepository<DataDictionaryDetail, Guid> _dataDicDetailRepository;
  15. private readonly IGuidGenerator _guidGenerator;
  16. public BaseServiceDataSeeder(
  17. IRepository<DataDictionary, Guid> dataDicRepository,
  18. IRepository<DataDictionaryDetail, Guid> dataDicDetailRepository,
  19. IGuidGenerator guidGenerator
  20. )
  21. {
  22. _dataDicRepository = dataDicRepository;
  23. _dataDicDetailRepository = dataDicDetailRepository;
  24. _guidGenerator = guidGenerator;
  25. }
  26. public virtual async Task SeedAsync(DataSeedContext context)
  27. {
  28. await CreateDataDictionaries();
  29. }
  30. //创建数据字典
  31. private async Task CreateDataDictionaries()
  32. {
  33. var exist = await (await _dataDicRepository.GetQueryableAsync()).AnyAsync(d => d.Name == "condition");
  34. if (exist) return;
  35. var id = _guidGenerator.Create();
  36. await _dataDicRepository.InsertAsync(new DataDictionary(id, "condition", "表单条件"));
  37. await CreateDataDictionaryDetails(id);
  38. }
  39. private async Task CreateDataDictionaryDetails(Guid pid)
  40. {
  41. await _dataDicDetailRepository.InsertAsync(new DataDictionaryDetail(_guidGenerator.Create(), pid, "等于", "=", 0));
  42. await _dataDicDetailRepository.InsertAsync(new DataDictionaryDetail(_guidGenerator.Create(), pid, "大于", ">", 1));
  43. await _dataDicDetailRepository.InsertAsync(new DataDictionaryDetail(_guidGenerator.Create(), pid, "小于", "<", 2));
  44. }
  45. }
  46. }