Esempio n. 1
0
        /// <summary>
        /// ازروی شناسه قانون غالب و شناسه گروه قانون , قانون را استخراج میکند
        /// </summary>
        /// <param name="ruleTmpId">شناسه قانون قالب</param>
        /// <param name="ruleCategoryCode">شناسه گروه قانون</param>
        public BRuleParameter(decimal ruleTmpId, decimal ruleCategoryCode)
        {
            IList <Rule> list = new RuleRepository(false).GetByCriteria(new CriteriaStruct(Utility.GetPropertyName(() => new Rule().TemplateId), ruleTmpId),
                                                                        new CriteriaStruct(Utility.GetPropertyName(() => new Rule().Category), new RuleCategory()
            {
                ID = ruleCategoryCode
            }));

            if (list.Count == 1)
            {
                workingRule = list.First();
            }
            else if (list.Count == 0)
            {
                UIValidationExceptions exception = new UIValidationExceptions();
                exception.Add(ExceptionResourceKeys.AssignParameterRuleIDInvalid, "پارامترهای ارسال شده معرف قانونی نمیباشد", ExceptionSrc);
                throw exception;
            }
            else
            {
                UIValidationExceptions exception = new UIValidationExceptions();
                exception.Add(ExceptionResourceKeys.AssignParameterRuleIDInvalid, "پارامترهای ارسال شده معرف بیش از یک قانون میباشد", ExceptionSrc);
                throw exception;
            }
        }
        public void TestSinglePermissionQuery(string permissionAlias)
        {
            QueryRepository          queryRepository;
            SecurableEntity          securableEntityType;
            AccessRule               accessRule;
            Role                     subject;
            ICollection <AccessRule> result;
            IEntityRepository        entityRepository = Factory.EntityRepository;
            Permission               permission;
            Permission               permissionToSet;

            using (DatabaseContext.GetContext(true))
            {
                permission      = permissionAlias == null ? null : Entity.Get <Permission>(permissionAlias);
                permissionToSet = permission ?? Entity.Get <Permission>("core:read");

                securableEntityType = Entity.Create <EntityType>().As <SecurableEntity>();
                securableEntityType.Save();

                accessRule = Entity.Create <AccessRule>();
                accessRule.AccessRuleEnabled = true;
                accessRule.PermissionAccess.Add(permissionToSet);
                accessRule.ControlAccess = securableEntityType;
                accessRule.Save();

                subject = Entity.Create <Role>();
                subject.AllowAccess.Add(accessRule.As <AccessRule>());
                subject.Save();

                queryRepository = new QueryRepository();
                result          = new RuleRepository(entityRepository).GetAccessRules(subject.Id,
                                                                                      permission, new[] { securableEntityType.Id });

                Assert.That(result, Has.Count.EqualTo(1));
                Assert.That(result.First( ).Id, Is.EqualTo(accessRule.Id));
            }
        }