Esempio n. 1
0
        /// <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;
            }
        }