コード例 #1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="obj"></param>
 protected override void DeleteValidate(OrganizationUnit organizationUnit)
 {
     if (organizationUnitRepository.IsRoot(organizationUnit.ID))
     {
         UIValidationExceptions exception = new UIValidationExceptions();
         exception.Add(ExceptionResourceKeys.OrganizationUnitRootDeleteIllegal, "ریشه چارت سازمانی نباید حذف شود", ExceptionSrc);
         throw exception;
     }
     if (organizationUnitRepository.HasPerson(organizationUnit.ID))
     {
         UIValidationExceptions exception = new UIValidationExceptions();
         exception.Add(ExceptionResourceKeys.OrganizationUnitUsedByPerson, "این چارت به اشخاص انتساب داده شده است", ExceptionSrc);
         throw exception;
     }
 }
コード例 #2
0
        /// <summary>
        /// اعتبارسنجی عملیات حذف
        /// </summary>
        /// <param name="organizationUnit">پست سازمانی</param>
        protected override void DeleteValidate(OrganizationUnit organizationUnit)
        {
            if (organizationUnitRepository.IsRoot(organizationUnit.ID))
            {
                UIValidationExceptions exception = new UIValidationExceptions();
                exception.Add(ExceptionResourceKeys.OrganizationUnitRootDeleteIllegal, "ریشه چارت سازمانی نباید حذف شود", ExceptionSrc);
                throw exception;
            }
            if (organizationUnitRepository.HasPerson(organizationUnit.ID))
            {
                UIValidationExceptions exception = new UIValidationExceptions();
                exception.Add(ExceptionResourceKeys.OrganizationUnitUsedByPerson, "این چارت به اشخاص انتساب داده شده است", ExceptionSrc);
                throw exception;
            }
            string id = organizationUnit.ID.ToString();
            IList <OrganizationUnit> list = NHibernateSessionManager.Instance.GetSession().QueryOver <OrganizationUnit>()
                                            .Where(x => x.ParentPath.IsInsensitiveLike("," + id + ",", MatchMode.Anywhere))

                                            .List <OrganizationUnit>();

            foreach (OrganizationUnit item in list)
            {
                if (organizationUnitRepository.HasPerson(item.ID))
                {
                    UIValidationExceptions exception = new UIValidationExceptions();
                    exception.Add(ExceptionResourceKeys.ChildOrganizationUnitUsedByPerson, "زیر مجموعه های این چارت به اشخاص انتساب داده شده است", ExceptionSrc);
                    throw exception;
                }
            }

            BManager bManager = new BManager();

            if (bManager.CheckOrganizationUnitUsedInFlowAsManager(organizationUnit, true))
            {
                UIValidationExceptions exception = new UIValidationExceptions();
                exception.Add(new ValidationException(ExceptionResourceKeys.OrganizationUnitUsedInFlowAsManager, "پست سازمانی در جریان کاری بعنوان مدیر تعریف شده است", ExceptionSrc));
                throw exception;
            }


            this.organizationUnitRepository.DeleteHierarchicalByParentId(organizationUnit.ID);
        }