NullCalendarManger.cs 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. using System.Linq.Expressions;
  2. using VberZero.BaseSystem;
  3. namespace VberZero.DomainService.Calendar;
  4. public class NullCalendarManger : ICalendarManger
  5. {
  6. private static NullCalendarManger _instance;
  7. public static NullCalendarManger Instance => _instance ??= new NullCalendarManger();
  8. public NullCalendarManger()
  9. {
  10. var date = DateTime.Today;
  11. int y = date.Year, m = date.Month, d = date.Day;
  12. _calendars = new List<SysCalendar>(new List<SysCalendar>()
  13. {
  14. new SysCalendar()
  15. {
  16. Id = 1, Title = "Demo01", Description = "----Demo01----", Colors = "#fff|#28a745|#28a745",
  17. Start = new DateTime(y, m, d, 12, 0, 0).AddDays(4), End = new DateTime(y, m, d, 16, 0, 0).AddDays(4)
  18. },
  19. new SysCalendar()
  20. {
  21. Id = 2, Title = "Demo02", Description = "----Demo02----", Colors = "#333|#fd7e14|#fd7e14",
  22. Start = new DateTime(y, m, d, 8, 30, 0).AddDays(2), End = new DateTime(y, m, d, 10, 0, 0).AddDays(2)
  23. },
  24. new SysCalendar()
  25. {
  26. Id = 3, Title = "Demo03", Description = "----Demo03----", Colors = "#fff|#dc3545|#dc3545",
  27. Start = new DateTime(y, m, d, 9, 30, 0).AddDays(-3),
  28. End = new DateTime(y, m, d, 10, 0, 0).AddDays(-2)
  29. },
  30. new SysCalendar()
  31. {
  32. Id = 4, Title = "Demo04", Description = "----Demo04----", Colors = "#fff|#007bff|#007bff",
  33. Start = new DateTime(y, m, d).AddDays(4), End = new DateTime(y, m, d).AddDays(13)
  34. },
  35. new SysCalendar()
  36. {
  37. Id = 5, Title = "Demo05", Description = "----Demo05----", Colors = "#333|#ffc107|#ffc107",
  38. Start = new DateTime(y, m, d).AddDays(8), AllDay = true
  39. },
  40. new SysCalendar()
  41. {
  42. Id = 6, Title = "Demo06", Description = "----Demo06----", Colors = "#fff|#e83e8c|#e83e8c",
  43. Start = new DateTime(y, m, d).AddDays(-4), AllDay = true
  44. },
  45. new SysCalendar()
  46. {
  47. Id = 7, Title = "Demo07", Description = "----Demo07----", Colors = "#fff|#dc3545|#dc3545",
  48. },
  49. new SysCalendar()
  50. {
  51. Id = 8, Title = "Demo08", Description = "----Demo08----", Colors = "#333|#ffc107|#ffc107",
  52. },
  53. new SysCalendar()
  54. {
  55. Id = 9, Title = "Demo09", Description = "----Demo09----", Colors = "#fff|#28a745|#28a745",
  56. }
  57. });
  58. }
  59. private static List<SysCalendar> _calendars = new List<SysCalendar>();
  60. public Task<List<SysCalendar>> GetAllList()
  61. {
  62. throw new NotImplementedException();
  63. }
  64. public Task<List<SysCalendar>> GetAllList(Expression<Func<SysCalendar, bool>> expression)
  65. {
  66. return Task.FromResult(_calendars.Where(a => a.Start != null).ToList());
  67. }
  68. public Task<List<SysCalendar>> GetNotStartList()
  69. {
  70. return Task.FromResult(_calendars.Where(a => a.Start == null).ToList());
  71. }
  72. public Task<SysCalendar> GetById(int id)
  73. {
  74. return Task.FromResult(_calendars.FirstOrDefault(a => a.Id == id));
  75. }
  76. public Task<SysCalendar> Create(SysCalendar info)
  77. {
  78. info.Id = (int)(DateTime.Now.Ticks);
  79. _calendars.Add(info);
  80. return Task.FromResult(info);
  81. }
  82. public async Task<SysCalendar> Update(SysCalendar info)
  83. {
  84. await Delete(info.Id);
  85. return await Create(info);
  86. }
  87. public async Task<SysCalendar> CreateOrUpdate(SysCalendar info)
  88. {
  89. if (info.Id != 0)
  90. {
  91. await Delete(info.Id);
  92. }
  93. else
  94. {
  95. info.Id = (int)(DateTime.Now.Ticks);
  96. }
  97. _calendars.Add(info);
  98. return info;
  99. }
  100. public Task Delete(int id)
  101. {
  102. var old = _calendars.FirstOrDefault(a => a.Id == id);
  103. if (old != null)
  104. {
  105. _calendars.Remove(old);
  106. }
  107. return Task.CompletedTask;
  108. }
  109. }