public SqlExcuteResult DeleteArea(Guid itemId)
        {
            using (var repo = Repo <UserDictionaryRepository>())
            {
                var sqlResult = new SqlExcuteResult()
                {
                    Success = false
                };
                var item = repo.GetModel(obj => obj.Id == itemId);
                if (item == null)
                {
                    return(sqlResult);
                }

                var children = repo.GetModels(obj => obj.ParentDictionaryId == item.Id || obj.ParentDictionary.ParentDictionaryId == item.Id).ToList();

                children.Add(item);

                try
                {
                    repo.DeleteDoCommit(children);
                }
                catch (Exception ex)
                {
                    var innerEx = ex;
                    while (innerEx != null)
                    {
                        var sqlEx = innerEx as SqlException;
                        if (sqlEx != null)
                        {
                            sqlResult.Exception   = sqlEx;
                            sqlResult.ErrorNumber = sqlEx.Number;

                            return(sqlResult);
                        }

                        innerEx = innerEx.InnerException;
                    }

                    throw;
                }

                sqlResult.Success = true;
                return(sqlResult);
            }
        }
        public SqlExcuteResult DeleteRole(Guid roleId)
        {
            using (var repo = Repo <RoleRepository>())
            {
                var sqlResult = new SqlExcuteResult()
                {
                    Success = false
                };
                var role = repo.GetModel(obj => obj.Id == roleId);
                if (role == null)
                {
                    return(sqlResult);
                }

                try
                {
                    repo.DeleteDoCommit(role);

                    GeneralProcess.RefreashRolePermissionsCache();
                }
                catch (Exception ex)
                {
                    var innerEx = ex;
                    while (innerEx != null)
                    {
                        var sqlEx = innerEx as SqlException;
                        if (sqlEx != null)
                        {
                            sqlResult.Exception   = sqlEx;
                            sqlResult.ErrorNumber = sqlEx.Number;

                            return(sqlResult);
                        }

                        innerEx = innerEx.InnerException;
                    }

                    throw;
                }

                sqlResult.Success = true;
                return(sqlResult);
            }
        }
        public SqlExcuteResult DeleteDepartment(Guid departmentId)
        {
            using (var repo = Repo <DepartmentRepository>())
            {
                var sqlResult = new SqlExcuteResult()
                {
                    Success = false
                };
                var role = repo.GetModel(obj => obj.Id == departmentId);
                if (role == null)
                {
                    return(sqlResult);
                }

                try
                {
                    repo.DeleteDoCommit(role);
                }
                catch (Exception ex)
                {
                    var innerEx = ex;
                    while (innerEx != null)
                    {
                        var sqlEx = innerEx as SqlException;
                        if (sqlEx != null)
                        {
                            sqlResult.Exception   = sqlEx;
                            sqlResult.ErrorNumber = sqlEx.Number;

                            return(sqlResult);
                        }

                        innerEx = innerEx.InnerException;
                    }

                    throw;
                }

                sqlResult.Success = true;
                return(sqlResult);
            }
        }