/// <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; } }
/// <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); }