/// <summary> /// 异步保存单个实例 /// <para>框架</para> /// </summary> /// <param name="addtional_execution"></param> protected void BeginSaveEntityFrame(Action addtional_execution = null) { if (Entity == null) { return; } TryCancelTask(); TaskMgt = DHelper.StartTask(() => { Window dlg = default; try { dlg = ShowDlgWait(); if (SaveValidation()) { addtional_execution?.Invoke(); Task t = CtxEntity.SaveChangesAsync(TokenMgt.Token); t.Wait(); if (TaskMgt.Status == TaskStatus.Canceled) { return; } IsNew = false; IsEditing = false; Msg = MsgSaveOK; RaiseEntityChanged(); RaiseContentsNeedRefresh(); } } catch (Exception ex) { SaveFailed(ex); } finally { TryCloseDlg(dlg); } }); }
/// <summary> /// 异步删除单个实例 /// <para>框架</para> /// </summary> /// <param name="addtional_execution"></param> protected void BeginDeleteEntityFrame(Action addtional_execution = null) { if (Entity == null) { return; } if (!ShowOKCancel(MsgDeleteConfirm)) { return; } TryCancelTask(); TaskMgt = DHelper.StartTask(() => { Window dlg = default; try { dlg = ShowDlgWait(); CtxEntity.Set <T>().Remove(Entity); addtional_execution?.Invoke(); Task t = CtxEntity.SaveChangesAsync(TokenMgt.Token); t.Wait(); if (TaskMgt.Status == TaskStatus.Canceled) { return; } IsNew = false; IsEditing = false; Msg = MsgDeleteOK; ClearEntityView(); RaiseContentsNeedRefresh(); } catch (Exception ex) { DeleteFailed(ex); } finally { TryCloseDlg(dlg); } }); }
/// <summary> /// 保存单个实例 /// <para>框架</para> /// </summary> /// <param name="addtional_execution"></param> /// <returns></returns> protected bool SaveEntityFrame(Action addtional_execution = null) { if (Entity == null) { return(false); } try { if (SaveValidation()) { addtional_execution?.Invoke(); CtxEntity.SaveChanges(); IsNew = false; IsEditing = false; Msg = MsgSaveOK; RaiseEntityChanged(); RaiseContentsNeedRefresh(); return(true); } else { return(false); } } catch (Exception ex) { return(SaveFailed(ex)); } }
/// <summary> /// 删除单个实例 /// <para>框架</para> /// </summary> /// <param name="addtional_execution"></param> /// <returns></returns> protected bool DeleteEntityFrame(Action addtional_execution = null) { if (Entity == null) { return(false); } if (!ShowOKCancel(MsgDeleteConfirm)) { return(false); } try { CtxEntity.Set <T>().Remove(Entity); addtional_execution?.Invoke(); CtxEntity.SaveChanges(); IsNew = false; IsEditing = false; Msg = MsgDeleteOK; ClearEntityView(); RaiseContentsNeedRefresh(); return(true); } catch (Exception ex) { return(DeleteFailed(ex)); } }