/// <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)); } }
private async Task <ActionResult> GetData() { PageSize = paginationService.PageSize; AllToDos = await paginationService.GetTodos(GetFilter(), CurrentPage); RecordCount = AllToDos.Count(); return(Page()); }
/// <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; } }
/// <summary> /// 修改待办事项 /// </summary> /// <returns></returns> private async Task ModifyAndSyncToDo() { IsLoading = Visibility.Visible; //修改当前列表 var itemToModify = AllToDos.ToList().Find(sche => { if (sche.ID == EditedToDo.ID) { return(true); } else { return(false); } }); itemToModify.Content = EditedToDo.Content; itemToModify.Category = CateVM.Categories[AddingCate].CateColorID; itemToModify.CreateTime = DateTime.Now.ToString(); UpdateDisplayList(CateVM.Categories[SelectedCate].CateColorID); //离线模式 if (App.IsInOfflineMode) { await SerializerHelper.SerializerToJson <ObservableCollection <ToDo> >(AllToDos, SerializerFileNames.ToDoFileName); EditedToDo = new ToDo(); Messenger.Default.Send(new GenericMessage <ObservableCollection <ToDo> >(AllToDos), MessengerTokens.UpdateTile); return; } //非离线模式 else if (App.CanSendRequest) { try { var resultUpdate = await CloudService.UpdateContent(itemToModify.ID, itemToModify.Content, itemToModify.CreateTime, itemToModify.Category); if (resultUpdate) { AllToDos.ToList().Find(sche => { if (sche.ID == EditedToDo.ID) { return(true); } else { return(false); } }).Content = EditedToDo.Content; EditedToDo = new ToDo(); Messenger.Default.Send(new GenericMessage <ObservableCollection <ToDo> >(AllToDos), MessengerTokens.UpdateTile); } } catch (COMException) { await ToastService.SendToastAsync(ResourcesHelper.GetResString("RequestError")); } } IsLoading = Visibility.Collapsed; }
/// <summary> /// 添加待办事项 /// </summary> /// <returns></returns> private async Task AddOrRestoreAndSyncNewToDo(int?category = null) { ShowNoItems = Visibility.Collapsed; EditedToDo.ID = Guid.NewGuid().ToString(); if (category == null) { EditedToDo.Category = CateVM.Categories[AddingCate].CateColorID; } //0 for insert,1 for add if (!AppSettings.Instance.IsAddToBottom) { AllToDos.Insert(0, EditedToDo); } else { AllToDos.Add(EditedToDo); } //序列化保存 await SerializerHelper.SerializerToJson <ObservableCollection <ToDo> >(AllToDos, SerializerFileNames.ToDoFileName); //更新磁贴 Messenger.Default.Send(new GenericMessage <ObservableCollection <ToDo> >(AllToDos), MessengerTokens.UpdateTile); //离线模式,还没有登录过 if (App.IsInOfflineMode) { IsLoading = Visibility.Collapsed; } //登录过的,但是没有网络 else if (App.IsNoNetwork && !App.IsInOfflineMode) { StagedToDos.Add(EditedToDo); await SerializerHelper.SerializerToJson <ObservableCollection <ToDo> >(StagedToDos, SerializerFileNames.StageFileName); } //登录过的,有网络 else if (App.CanSendRequest) { try { //在线模式 //发送请求 var result = await CloudService.AddSchedule(EditedToDo.Content, "0", EditedToDo.Category.ToString()); if (!string.IsNullOrEmpty(result)) { ////发送当前的顺序 await CloudService.SetAllOrder(ToDo.GetCurrentOrderString(AllToDos)); } else { StagedToDos.Add(EditedToDo); } } catch (Exception) { StagedToDos.Add(EditedToDo); } } EditedToDo = new ToDo(); IsLoading = Visibility.Collapsed; UpdateListByChangingSelectedCate(); UpdateUndoneCount(); }