using System.Linq.Expressions; using VberZero.BaseSystem; namespace VberZero.DomainService.Calendar; public class NullCalendarManger : ICalendarManger { private static NullCalendarManger _instance; public static NullCalendarManger Instance => _instance ??= new NullCalendarManger(); public NullCalendarManger() { var date = DateTime.Today; int y = date.Year, m = date.Month, d = date.Day; _calendars = new List(new List() { new SysCalendar() { Id = 1, Title = "Demo01", Description = "----Demo01----", Colors = "#fff|#28a745|#28a745", Start = new DateTime(y, m, d, 12, 0, 0).AddDays(4), End = new DateTime(y, m, d, 16, 0, 0).AddDays(4) }, new SysCalendar() { Id = 2, Title = "Demo02", Description = "----Demo02----", Colors = "#333|#fd7e14|#fd7e14", Start = new DateTime(y, m, d, 8, 30, 0).AddDays(2), End = new DateTime(y, m, d, 10, 0, 0).AddDays(2) }, new SysCalendar() { Id = 3, Title = "Demo03", Description = "----Demo03----", Colors = "#fff|#dc3545|#dc3545", Start = new DateTime(y, m, d, 9, 30, 0).AddDays(-3), End = new DateTime(y, m, d, 10, 0, 0).AddDays(-2) }, new SysCalendar() { Id = 4, Title = "Demo04", Description = "----Demo04----", Colors = "#fff|#007bff|#007bff", Start = new DateTime(y, m, d).AddDays(4), End = new DateTime(y, m, d).AddDays(13) }, new SysCalendar() { Id = 5, Title = "Demo05", Description = "----Demo05----", Colors = "#333|#ffc107|#ffc107", Start = new DateTime(y, m, d).AddDays(8), AllDay = true }, new SysCalendar() { Id = 6, Title = "Demo06", Description = "----Demo06----", Colors = "#fff|#e83e8c|#e83e8c", Start = new DateTime(y, m, d).AddDays(-4), AllDay = true }, new SysCalendar() { Id = 7, Title = "Demo07", Description = "----Demo07----", Colors = "#fff|#dc3545|#dc3545", }, new SysCalendar() { Id = 8, Title = "Demo08", Description = "----Demo08----", Colors = "#333|#ffc107|#ffc107", }, new SysCalendar() { Id = 9, Title = "Demo09", Description = "----Demo09----", Colors = "#fff|#28a745|#28a745", } }); } private static List _calendars = new List(); public Task> GetAllList() { throw new NotImplementedException(); } public Task> GetAllList(Expression> expression) { return Task.FromResult(_calendars.Where(a => a.Start != null).ToList()); } public Task> GetNotStartList() { return Task.FromResult(_calendars.Where(a => a.Start == null).ToList()); } public Task GetById(int id) { return Task.FromResult(_calendars.FirstOrDefault(a => a.Id == id)); } public Task Create(SysCalendar info) { info.Id = (int)(DateTime.Now.Ticks); _calendars.Add(info); return Task.FromResult(info); } public async Task Update(SysCalendar info) { await Delete(info.Id); return await Create(info); } public async Task CreateOrUpdate(SysCalendar info) { if (info.Id != 0) { await Delete(info.Id); } else { info.Id = (int)(DateTime.Now.Ticks); } _calendars.Add(info); return info; } public Task Delete(int id) { var old = _calendars.FirstOrDefault(a => a.Id == id); if (old != null) { _calendars.Remove(old); } return Task.CompletedTask; } }