示例#1
0
        /// <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;
            }
        }