public async Task Remove(TodoLog item) { if (item == null) { return; } //检查是否存在 var data = LoadLogs(item.ProjcectId); var log = data.Logs.FirstOrDefault(x => x.Key == item.Key); var daylog = DayLogs.FirstOrDefault(x => x.TodoLogs.Count(y => y.Key == item.Key) > 0); //移除项目 daylog.TodoLogs.Remove(log); if (daylog.TodoLogs.Count == 0) { //移除项目 DayLogs.Remove(daylog); //移除索引 DataIndex.DayLogs.Remove(daylog.Key); await Remove(daylog.Key); } else { await Save(daylog); } await Save(DataIndex); MessageAction?.Invoke(MessageTypeUpdate); }
/// <summary> /// 更新数据 /// </summary> /// <param name="item"></param> public async Task Update(TodoLog item) { if (item == null) { return; } var daykey = item.Created.GetDayId(); var p = DayLogs.FirstOrDefault(x => x.Date == daykey); if (p == null) { //创建新的日期 var daylog = new DayLog { Date = daykey, TodoLogs = new List <TodoLog>() }; Created(daylog); Created(item); daylog.TodoLogs.Add(item); DayLogs.Add(daylog); DataIndex.DayLogs.AddUniq(daylog.Key); await Save(daylog); await Save(DataIndex); } else { //检查记录是否存在 var tl = p.TodoLogs.FirstOrDefault(x => x.Key == item.Key && x.ProjcectId == item.ProjcectId && x.TodoId == item.TodoId); if (tl == null) { Created(item); //创建新记录 p.TodoLogs.Add(item); } else { //更新 tl.Update(item); } await Save(p); } MessageAction?.Invoke(MessageTypeUpdate); }