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