DataETLService.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using CMS.Context;
  2. using CMS.Models.Source;
  3. using CMS.Models.Target;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Threading.Tasks;
  8. namespace CMS.Services
  9. {
  10. public class DataETLService: IBusinessService
  11. {
  12. private readonly SourceService sourceService;
  13. private readonly TargetService targetService;
  14. public DataETLService(SourceService _sourceService,TargetService _targetService) {
  15. sourceService = _sourceService;
  16. targetService = _targetService;
  17. }
  18. /// <summary>
  19. /// 抽取数据
  20. /// </summary>
  21. /// <returns></returns>
  22. public List<SourceExercise> ExtractData() {
  23. return sourceService.GetList();
  24. }
  25. /// <summary>
  26. /// 转换数据
  27. /// </summary>
  28. /// <returns></returns>
  29. public List<TargetExercise> TransformData(List<SourceExercise> sourceExercises)
  30. {
  31. List<TargetExercise> targetExercises = new List<TargetExercise>();
  32. sourceExercises.ForEach(x => {
  33. targetExercises.Add(new TargetExercise { ExNO = x.ExNO ,MemberID=x.MemberID,CourseNO=x.CourseNO,ClassID=x.ClassID,TPID=x.TPID});
  34. });
  35. return targetExercises;
  36. }
  37. /// <summary>
  38. /// 装载数据
  39. /// </summary>
  40. /// <returns></returns>
  41. public bool LoadData(List<TargetExercise> targetExercises)
  42. {
  43. return targetService.Insert(targetExercises);
  44. }
  45. public bool ETL() {
  46. List<SourceExercise> sourceExercises= ExtractData();
  47. List<TargetExercise> targetExercises = TransformData(sourceExercises);
  48. return LoadData(targetExercises);
  49. }
  50. }
  51. }