/// <summary> /// اعتبارسنجی عملیات ویرایش /// نام خالی نباشد /// شناسه والد معتبر باشد /// اعتبار سنجی آیتمی که قرار است بروزرسانی شود /// نام در گرهای همسطح تکراری نباشد /// کد تعریف شده نباید تکراری باشد /// </summary> /// <param name="organizationUnit">پست سازمانی</param> protected override void UpdateValidate(OrganizationUnit organizationUnit) { // والد یک گره بروزرسانی نمیشود .همچنینبنا به محدودیتهای کلاینت هنگام بروزرسانی والد مقداردهی نمیشود organizationUnit.ParentID = organizationUnitRepository.GetParentID(organizationUnit.ID); UIValidationExceptions exception = new UIValidationExceptions(); if (Utility.IsEmpty(organizationUnit.Name)) { exception.Add(new ValidationException(ExceptionResourceKeys.OrganizationUnitNameRequierd, "نام چارت باید مشخص شود", ExceptionSrc)); } else if (organizationUnitRepository.GetCountByCriteria(new CriteriaStruct(Utility.GetPropertyName(() => organizationUnit.Name), organizationUnit.Name), new CriteriaStruct(Utility.GetPropertyName(() => organizationUnit.Parent), organizationUnit.Parent), new CriteriaStruct(Utility.GetPropertyName(() => organizationUnit.ID), organizationUnit.ID, CriteriaOperation.NotEqual)) > 0) { exception.Add(new ValidationException(ExceptionResourceKeys.OrganizationUnitNameRepeated, "نام چارت در یک سطح نباید تکراری باشد", ExceptionSrc)); } if (organizationUnit.ParentID != 0 && organizationUnitRepository.GetCountByCriteria(new CriteriaStruct(Utility.GetPropertyName(() => organizationUnit.Parent), organizationUnit.Parent)) == 0) { exception.Add(new ValidationException(ExceptionResourceKeys.OrganizationUnitParentNotExists, "چارت والدی با این شناسه موجود نمیباشد", ExceptionSrc)); } if (!Utility.IsEmpty(organizationUnit.CustomCode)) { if (organizationUnitRepository.GetCountByCriteria(new CriteriaStruct(Utility.GetPropertyName(() => organizationUnit.CustomCode), organizationUnit.CustomCode), new CriteriaStruct(Utility.GetPropertyName(() => organizationUnit.ID), organizationUnit.ID, CriteriaOperation.NotEqual)) > 0) { exception.Add(new ValidationException(ExceptionResourceKeys.OrganizationUnitCustomCodeRepeated, "درج - کد تعریف شده در چارت نباید تکراری باشد", ExceptionSrc)); } } if (exception.Count > 0) { throw exception; } }