Exemplo n.º 1
0
 /// <summary>
 ///     删除对象前置处理
 /// </summary>
 protected override bool PrepareDelete(long id)
 {
     if (Access.Any(p => p.Id == id && p.IsFreeze))
     {
         return(false);
     }
     return(base.PrepareDelete(id));
 }
Exemplo n.º 2
0
 /// <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));
 }
Exemplo n.º 3
0
        ///// <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)));
        }
Exemplo n.º 4
0
 /// <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));
 }
Exemplo n.º 5
0
 /// <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));
 }
Exemplo n.º 6
0
 /// <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));
 }
Exemplo n.º 7
0
 /// <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));
 }
Exemplo n.º 8
0
 /// <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);
 }
Exemplo n.º 9
0
 /// <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);
 }
Exemplo n.º 10
0
 /// <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);
 }
Exemplo n.º 11
0
 /// <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);
     }
 }
Exemplo n.º 12
0
 /// <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));
     }
 }
Exemplo n.º 13
0
 /// <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));
     }
 }
Exemplo n.º 14
0
 /// <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));
 }
Exemplo n.º 16
0
        /// <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));
            }
        }
Exemplo n.º 17
0
 /// <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);
 }
Exemplo n.º 18
0
 /// <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());
 }
Exemplo n.º 19
0
 /// <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);
     }
 }
Exemplo n.º 20
0
 /// <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);
     }
 }
Exemplo n.º 21
0
 /// <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);
             }
         }
     }
 }
Exemplo n.º 22
0
 /// <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));
     }
 }
Exemplo n.º 23
0
        /// <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);
        }