/// <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); }
private async Task Init() { //加载索引 DataIndex = await Load <DataIndex>(dataIndexKey); if (DataIndex == null) { //首次使用 DataIndex = new DataIndex { Key = dataIndexKey, Created = DateTime.Now, Creator = Operator.Name }; return; } //加载数据 foreach (var item in DataIndex.Projects) { var dat = await Load <Project>(item); if (dat == null) { continue; } Projects.Add(dat); } foreach (var item in DataIndex.Todos) { var dat = await Load <Todo>(item); if (dat == null) { continue; } Todos.Add(dat); if (string.IsNullOrWhiteSpace(dat.ProjcectId)) { IndexProject.Todos.Add(dat.Key); } } foreach (var item in DataIndex.DayLogs) { var dat = await Load <DayLog>(item); if (dat == null) { continue; } DayLogs.Add(dat); dat.TodoLogs.ForEach(x => { if (string.IsNullOrWhiteSpace(x.ProjcectId)) { IndexProject.DayLogs.Add(x.Key); } }); } foreach (var item in DataIndex.Reports) { var dat = await Load <Report>(item); if (dat == null) { continue; } Reports.Add(dat); } MessageAction?.Invoke(MessageTypeUpdate); }