/// <summary> /// 删除对象前置处理 /// </summary> protected override bool PrepareDelete(long id) { if (Access.Any(p => p.Id == id && p.IsFreeze)) { return(false); } return(base.PrepareDelete(id)); }
/// <summary> /// 删除对象操作 /// </summary> protected override bool DoDelete(long id) { if (Access.Any(p => p.DataState == DataStateType.Delete && p.Id == id)) { return(Access.PhysicalDelete(id)); } return(Access.DeletePrimaryKey(id)); }
///// <summary> ///// 重置数据状态 ///// </summary> ///// <param name="data"></param> //protected override bool DoResetState(TData data) //{ // if (data == null) // return false; // data.AuditState = AuditStateType.None; // data.AuditDate = DateTime.MinValue; // data.AuditorId = 0; // return base.DoResetState(data); //} /// <summary> /// 禁用对象 /// </summary> public override bool Reset(long id) { if (Access.Any(p => p.Id == id && p.AuditState != AuditStateType.Pass)) { return(false); } return(ResetState(Access.First(id))); }
/// <summary> /// 启用对象 /// </summary> public override bool Enable(TPrimaryKey id) { if (Access.Any(p => Equals(p.Id, id) && p.AuditState != AuditStateType.Pass)) { return(false); } return(base.Enable(id)); }
/// <summary> /// 删除对象操作 /// </summary> protected override bool DoDelete(TPrimaryKey id) { if (Access.Any(p => p.DataState == DataStateType.Delete && Equals(p.Id, id))) { return(Access.PhysicalDelete(id)); } return(Access.DeletePrimaryKey(id)); }
/// <summary> /// 删除对象前置处理 /// </summary> protected override bool PrepareDelete(long id) { if (Access.Any(p => p.Id == id && (p.IsFreeze || p.DataState == DataStateType.Disable || p.DataState == DataStateType.Enable))) { return(false); } return(base.PrepareDelete(id)); }
/// <summary> /// 锁定对象 /// </summary> public override bool Lock(long id) { if (Access.Any(p => p.Id == id && p.AuditState != AuditStateType.Pass)) { return(false); } return(base.Lock(id)); }
/// <summary> /// 删除对象前置处理 /// </summary> protected override bool PrepareDelete(long id) { if (Access.Any(p => p.Id == id && p.AuditState == AuditStateType.None)) { return(base.PrepareDelete(id)); } GlobalContext.Current.LastMessage = "仅未进行任何审核操作的数据可以被删除"; return(false); }
/// <summary> /// 删除对象前置处理 /// </summary> protected override bool PrepareDelete(TPrimaryKey id) { if (Access.Any(p => Equals(p.Id, id) && p.AuditState == AuditStateType.None)) { return(base.PrepareDelete(id)); } GlobalContext.Current.Status.LastMessage = "仅未进行任何审核操作的数据可以被删除"; return(false); }
/// <summary> /// 删除对象前置处理 /// </summary> protected override bool PrepareDelete(TPrimaryKey id) { if (Access.Any(p => id.Equals(p.Id) && !p.IsFreeze)) { return(base.PrepareDelete(id)); } GlobalContext.Current.Status.LastMessage = "数据已锁定"; GlobalContext.Current.Status.LastState = OperatorStatusCode.ArgumentError; return(false); }
/// <summary> /// 删除对象操作 /// </summary> protected override bool DoDelete(long id) { using (Access.DataBase.CreateDataBaseScope()) { if (!Access.Any(p => p.Id == id && p.DataState == DataStateType.Delete)) { return(Access.SetValue(p => p.DataState, DataStateType.Delete, p => p.Id == id && p.DataState == DataStateType.None) > 0); } BusinessContext.Current.LastMessage = "不允许随意执行物理删除操作"; return(false); } }
/// <summary> /// 弃用对象 /// </summary> public override bool Discard(int id) { using (Access.DataBase.CreateDataBaseScope()) { if (!Access.Any(p => p.Id == id && p.AuditState <= AuditStateType.Again)) { Access.SetValue(p => p.IsFreeze, false, id); return(true); } return(base.Discard(id)); } }
/// <summary> /// 启用对象 /// </summary> public override bool Enable(int id) { using (Access.DataBase.CreateDataBaseScope()) { if (!Access.Any(p => p.Id == id && p.AuditState == AuditStateType.Pass)) { Access.SetValue(p => p.IsFreeze, false, id); return(true); } return(base.Enable(id)); } }
/// <summary> /// 禁用对象 /// </summary> public override bool Reset(int id) { ResetState(Access.First(id)); using (Access.DataBase.CreateDataBaseScope()) { if (!Access.Any(p => p.Id == id && p.AuditState != AuditStateType.Pass)) { Access.SetValue(p => p.IsFreeze, false, id); return(true); } return(base.Reset(id)); } }
/// <summary> /// 被用户编辑的数据的保存前操作 /// </summary> /// <param name="data">数据</param> /// <param name="isAdd">是否为新增</param> /// <returns>如果为否将阻止后续操作</returns> protected override bool PrepareSaveByUser(PositionPersonnelData data, bool isAdd) { if (null == data.Mobile) { BusinessContext.Current.LastMessage = "手机号码用于登录系统不能为空"; return(false); } if (Access.Any(p => p.Id != data.Id && p.Mobile == data.Mobile)) { BusinessContext.Current.LastMessage = "手机号码用于登录系统必须唯一"; return(false); } return(base.PrepareSaveByUser(data, isAdd)); }
/// <summary> /// 锁定对象 /// </summary> public virtual bool Lock(long id) { if (!Access.Any(p => p.Id == id && p.DataState < DataStateType.Discard && !p.IsFreeze)) { return(false); } using (var scope = Access.DataBase.CreateTransactionScope()) { Access.SetValue(p => p.IsFreeze, true, id); Access.SetValue(p => p.DataState, DataStateType.Disable, p => p.Id == id && p.DataState == DataStateType.None); OnStateChanged(id, BusinessCommandType.Lock); return(scope.SetState(true)); } }
/// <summary> /// 锁定对象 /// </summary> public override bool Lock(int id) { using (Access.DataBase.CreateDataBaseScope()) { if (!Access.Any(p => p.Id == id && p.AuditState == AuditStateType.Pass)) { return(false); } if (base.Lock(id)) { Access.SetValue(p => p.AuditState, AuditStateType.End, id); } } return(true); }
/// <summary> /// 修改状态 /// </summary> protected bool SetDataState(TPrimaryKey id, DataStateType state, bool isFreeze, Expression <Func <TData, bool> > filter) { if (filter != null && !Access.Any(filter)) { return(false); } if (filter == null && !Access.ExistPrimaryKey(id)) { return(false); } Access.SetState(state, isFreeze, id); using var scope = TransactionScope.CreateScope(Access.DataBase); Access.SetValue(p => p.IsFreeze, isFreeze, id); Access.SetValue(p => p.DataState, state, id); OnStateChanged(id, BusinessCommandType.SetState); return(scope.Succeed()); }
/// <summary> /// 修改状态 /// </summary> protected bool SetDataState(int id, DataStateType state, Expression <Func <TData, bool> > filter) { using (Access.DataBase.CreateDataBaseScope()) { if (!Access.ExistPrimaryKey(id) || !Access.Any(filter)) { return(false); } Access.SetValue(p => p.DataState, state, id); if (!unityStateChanged) { return(true); } OnStateChanged(Access.LoadByPrimaryKey(id), BusinessCommandType.SetState); return(true); } }
/// <summary> /// 锁定对象 /// </summary> public virtual bool Lock(int id) { using (Access.DataBase.CreateDataBaseScope()) { if (!Access.Any(p => p.Id == id && p.DataState < DataStateType.Discard && !p.IsFreeze)) { return(false); } Access.SetValue(p => p.IsFreeze, true, id); Access.SetValue(p => p.DataState, DataStateType.Enable, id); if (!unityStateChanged) { return(true); } OnStateChanged(Access.LoadByPrimaryKey(id), BusinessCommandType.Lock); return(true); } }
/// <summary> /// 添加所有主管与办事员 /// </summary> public void CreateAll() { using (MySqlDataBaseScope.CreateScope(Access.DataBase)) { var oAccess = new OrganizationDataAccess(); var orgs = oAccess.All(p => p.DataState < DataStateType.Delete); foreach (var org in orgs) { var leader = org.FullName.Last() + "长"; if (!Access.Any(p => p.OrganizationId == org.Id && p.RoleId == 3)) { Access.Insert(new OrganizePositionData { Position = leader, OrganizationId = org.Id, RoleId = 3, Memo = org.FullName + leader }); } else { Access.SetValue(p => p.DataState, DataStateType.None, p => p.OrganizationId == org.Id && p.RoleId == 3 && p.DataState == DataStateType.Delete); } if (!Access.Any(p => p.OrganizationId == org.Id && p.RoleId == 4)) { Access.Insert(new OrganizePositionData { Position = "办事员", OrganizationId = org.Id, RoleId = 4, Memo = org.FullName + "办事员" }); } else { Access.SetValue(p => p.DataState, DataStateType.None, p => p.OrganizationId == org.Id && p.RoleId == 4 && p.DataState == DataStateType.Delete); } } } }
/// <summary> /// 修改状态 /// </summary> protected bool SetDataState(long id, DataStateType state, Expression <Func <TData, bool> > filter, bool?setFreeze) { if (filter != null && !Access.Any(filter)) { return(false); } if (filter == null && !Access.ExistPrimaryKey(id)) { return(false); } using (var scope = Access.DataBase.CreateTransactionScope()) { Access.SetValue(p => p.DataState, state, id); if (setFreeze != null) { Access.SetValue(p => p.IsFreeze, setFreeze.Value, id); } OnStateChanged(id, BusinessCommandType.SetState); return(scope.SetState(true)); } }
/// <summary> /// 检查标准的增删改查按钮 /// </summary> /// <param name="pid"></param> void NormalButtons(long pid) { var page = Access.LoadByPrimaryKey(pid); if (page == null || page.ItemType != PageItemType.Page) { return; } //page.Config.Edit = true; if (page.Config.Edit) { SaveButtonItem(pid, "#btnAdd", "新增", "addnew"); SaveButtonItem(pid, "#btnEdit", "详细", "details"); if (Access.Any(p => p.ParentId == pid && p.ExtendValue == "details")) { Save(pid, "#btnSave", "修改", "update", "extend"); } SaveButtonItem(pid, "#btnValidate", "数据校验", "validate"); SaveButtonItem(pid, "#btnDelete", "删除", "delete"); SaveButtonItem(pid, "#btnExport", "导出", "export"); } //page.Config.DataState = false; if (page.Config.DataState) { SaveButtonItem(pid, "#btnDisable", "禁用", "disable"); SaveButtonItem(pid, "#btnEnable", "启用", "enable"); SaveButtonItem(pid, "#btnDiscard", "废弃", "discard"); SaveButtonItem(pid, "#btnReset", "还原", "reset"); SaveButtonItem(pid, "#btnLock", "锁定", "lock"); } else { DeleteButtonItem(p => p.ParentId == pid && p.ExtendValue == "disable"); DeleteButtonItem(p => p.ParentId == pid && p.ExtendValue == "enable"); DeleteButtonItem(p => p.ParentId == pid && p.ExtendValue == "reset"); DeleteButtonItem(p => p.ParentId == pid && p.ExtendValue == "discard"); DeleteButtonItem(p => p.ParentId == pid && p.ExtendValue == "lock"); DeleteButtonItem(p => p.ParentId == pid && p.ExtendValue == "physical_delete"); } if (page.Config.Audit) { SaveButtonItem(pid, "#btnPullback", "拉回", "pullback"); SaveButtonItem(pid, "#btnSubmit", "提交审核", "submit"); SaveButtonItem(pid, "#btnAuditPass", "审核(通过)", "pass"); SaveButtonItem(pid, "#btnAuditDeny", "审核(否决)", "deny"); SaveButtonItem(pid, "#btnAuditBack", "退回重做", "back"); SaveButtonItem(pid, "#btnReAudit", "反审核", "reaudit"); } else { DeleteButtonItem(p => p.ParentId == pid && p.ExtendValue == "pullback"); DeleteButtonItem(p => p.ParentId == pid && p.ExtendValue == "submit"); DeleteButtonItem(p => p.ParentId == pid && p.ExtendValue == "pass"); DeleteButtonItem(p => p.ParentId == pid && p.ExtendValue == "deny"); DeleteButtonItem(p => p.ParentId == pid && p.ExtendValue == "back"); DeleteButtonItem(p => p.ParentId == pid && p.ExtendValue == "reaudit"); } //Update(page); }