ProjectService.cs 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. using AutoMapper;
  2. using IMCS.CCS.Entitys;
  3. using IMCS.CCS.Service;
  4. using Microsoft.Extensions.Configuration;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Threading.Tasks;
  9. namespace IMCS.CCS.Service
  10. {
  11. /// <summary>
  12. /// 项目服务
  13. /// </summary>
  14. public class ProjectService : IProjectService
  15. {
  16. private readonly IDataService _fileDataService;
  17. private readonly IMapper _mapper;
  18. private readonly IDataStorageConfigurationService _dataStorageConfigurationService;
  19. public ProjectService(IConfiguration configuration, IDataService fileDataService, IMapper mapper, IDataStorageConfigurationService dataStorageConfigurationService)
  20. {
  21. _fileDataService = fileDataService;
  22. //初始化 FileData服务
  23. _fileDataService.Init(dataStorageConfigurationService.GetProjectPathOrKey());
  24. _mapper = mapper;
  25. _dataStorageConfigurationService = dataStorageConfigurationService;
  26. }
  27. /// <summary>
  28. /// 查询列表
  29. /// </summary>
  30. /// <returns></returns>
  31. public async Task<IEnumerable<Project>> FindListAsync()
  32. => await _fileDataService.ReadDataAsync<Project>();
  33. /// <summary>
  34. /// 保存
  35. /// </summary>
  36. /// <param name="form"></param>
  37. /// <returns></returns>
  38. public async Task<Project> SaveAsync(Project form)
  39. {
  40. var data = (await this.FindListAsync())?.ToList() ?? new List<Project>();
  41. var project = data.Find(w => w.Id == form.Id);
  42. if (project == null)
  43. {
  44. form.Id = Guid.NewGuid();
  45. project = _mapper.Map<Project, Project>(form);
  46. project.CreateTime = DateTime.Now;
  47. data.Add(project);
  48. }
  49. else
  50. {
  51. project = _mapper.Map(form, project);
  52. }
  53. await _fileDataService.WriteDataAsync(data);
  54. return project;
  55. }
  56. /// <summary>
  57. /// 删除数据
  58. /// </summary>
  59. /// <returns></returns>
  60. public async Task<bool> DeleteAsync(Guid id)
  61. {
  62. var data = (await this.FindListAsync())?.ToList() ?? new List<Project>();
  63. var project = data.Find(w => w.Id == id);
  64. if (project == null) return true;
  65. data.RemoveAt(data.IndexOf(project));
  66. await _fileDataService.WriteDataAsync(data);
  67. return true;
  68. }
  69. /// <summary>
  70. /// 根据Id 查询 任务
  71. /// </summary>
  72. /// <param name="id"></param>
  73. /// <returns></returns>
  74. public async Task<Project> FindByIdAsync(Guid id)
  75. {
  76. var data = (await this.FindListAsync())?.ToList() ?? new List<Project>();
  77. return data.Find(w => w.Id == id) ?? new Project();
  78. }
  79. }
  80. }