/// <summary> /// 删除todo /// </summary> /// <param name="id">ID</param> /// <returns></returns> /// 先从列表删除,然后把列表内容都序列化保存,接着: /// 1.如果已经登陆的,尝试发送请求; /// 2.离线模式,不用管 private async Task DeleteToDo(ToDo todo) { try { var item = todo; DeletedToDos.Add(item); await SerializerHelper.SerializerToJson <ObservableCollection <ToDo> >(DeletedToDos, SerializerFileNames.DeletedFileName); AllToDos.Remove(item); UpdateDisplayList(CateVM.Categories[SelectedCate].CateColorID); await SerializerHelper.SerializerToJson <ObservableCollection <ToDo> >(AllToDos, SerializerFileNames.ToDoFileName); //登录过的 if (App.CanSendRequest) { var result = await CloudService.DeleteSchedule(todo.ID); await CloudService.SetAllOrder(ToDo.GetCurrentOrderString(AllToDos)); } Messenger.Default.Send(new GenericMessage <ObservableCollection <ToDo> >(AllToDos), MessengerTokens.UpdateTile); UpdateUndoneCount(); } catch (Exception e) { var task = ExceptionHelper.WriteRecordAsync(e, nameof(MainViewModel), nameof(DeleteToDo)); } }
/// <summary> /// 从储存反序列化所有数据 /// </summary> /// <returns></returns> private async Task RestoreData() { try { SelectedCate = 0; AllToDos = await SerializerHelper.DeserializeFromJsonByFile <ObservableCollection <ToDo> >(SerializerFileNames.ToDoFileName); CurrentDisplayToDos = AllToDos; Messenger.Default.Send(new GenericMessage <ObservableCollection <ToDo> >(AllToDos), MessengerTokens.UpdateTile); DeletedToDos = await SerializerHelper.DeserializeFromJsonByFile <ObservableCollection <ToDo> >(SerializerFileNames.DeletedFileName); DeletedToDos.ToList().ForEach(s => { if (s == null) { DeletedToDos.Remove(s); } }); StagedToDos = await SerializerHelper.DeserializeFromJsonByFile <ObservableCollection <ToDo> >(SerializerFileNames.StageFileName); App.HasSyncedListOnce = true; } catch (Exception ex) { var task = Logger.LogAsync(ex); } }
/// <summary> /// 删除todo /// </summary> /// <param name="id">ID</param> /// <returns></returns> /// 先从列表删除,然后把列表内容都序列化保存,接着: /// 1.如果已经登陆的,尝试发送请求; /// 2.离线模式,不用管 private async Task DeleteToDo(string id) { try { var itemToDeleted = MyToDos.ToList().Find(s => { if (s.ID == id) { return(true); } else { return(false); } }); DeletedToDos.Add(itemToDeleted); await SerializerHelper.SerializerToJson <ObservableCollection <ToDo> >(DeletedToDos, SerializerFileNames.DeletedFileName, true); MyToDos.Remove(itemToDeleted); UpdateDisplayList(SelectedCate); await SerializerHelper.SerializerToJson <ObservableCollection <ToDo> >(MyToDos, SerializerFileNames.ToDoFileName, true); if (!App.isInOfflineMode) { var result = await PostHelper.DeleteSchedule(id); await PostHelper.SetMyOrder(LocalSettingHelper.GetValue("sid"), ToDo.GetCurrentOrderString(MyToDos)); } Messenger.Default.Send(new GenericMessage <ObservableCollection <ToDo> >(MyToDos), MessengerTokens.UpdateTile); } catch (Exception e) { var task = ExceptionHelper.WriteRecord(e); } }
/// <summary> /// 删除todo /// </summary> /// <param name="id">ID</param> /// <returns></returns> /// 先从列表删除,然后把列表内容都序列化保存,接着: /// 1.如果已经登陆的,尝试发送请求; /// 2.离线模式,不用管 private async Task DeleteToDo(ToDo todo) { IsLoading = Visibility.Visible; try { var item = todo; DeletedToDos.Add(item); await SerializerHelper.SerializerToJson <ObservableCollection <ToDo> >(DeletedToDos, SerializerFileNames.DeletedFileName); AllToDos.Remove(item); UpdateDisplayList(CateVM.Categories[SelectedCate].CateColorID); await SerializerHelper.SerializerToJson <ObservableCollection <ToDo> >(AllToDos, SerializerFileNames.ToDoFileName); //登录过的 if (App.CanSendRequest) { var result = await CloudService.DeleteToDoAsync(todo.ID); await CloudService.UpdateAllOrderAsync(ToDo.GetCurrentOrderString(AllToDos)); } Messenger.Default.Send(new GenericMessage <ObservableCollection <ToDo> >(AllToDos), MessengerTokens.UpdateTile); UpdateUndoneCount(); } catch (Exception e) { var task = Logger.LogAsync(e); } finally { IsLoading = Visibility.Collapsed; } }