public static ArtifactStateInfo CalculateArtifactStateInfo(object targetObject, ArtifactStateRule rule) { Guard.ArgumentNotNull(rule, "rule"); MethodInfo methodInfo = rule.MethodInfo; State editorState; bool active; if (methodInfo != null) { editorState = GetEditorStateFromMethod(methodInfo, targetObject, out active); if (!string.IsNullOrEmpty(rule.NormalCriteria)) { Tracing.Tracer.LogWarning( ExceptionLocalizerTemplate <ConditionalArtifactStateExceptionResourceLocalizer, ConditionalArtifactStateExceptionId> . GetExceptionMessage( ConditionalArtifactStateExceptionId.BrokenRuleContainsBothCriteriaAndMethodInfoParameters), typeof(ArtifactStateRuleAttribute).Name, rule.TypeInfo.FullName, rule.NormalCriteria, rule.MethodInfo.Name); } } else { editorState = rule.State; active = Fit(targetObject, rule); } return(new ArtifactStateInfo(active, targetObject, editorState, rule)); }
static void AddRuntimeMembers(IModelApplication model, XPDictionary dictionary) { foreach (IModelRuntimeMember modelRuntimeMember in GetCustomFields(model)) { try { Type classType = modelRuntimeMember.ModelClass.TypeInfo.Type; XPClassInfo typeInfo = dictionary.GetClassInfo(classType); lock (typeInfo) { if (typeInfo.FindMember(modelRuntimeMember.Name) == null) { XpandCustomMemberInfo memberInfo = GetMemberInfo(modelRuntimeMember, typeInfo); AddAttributes(modelRuntimeMember, memberInfo); XafTypesInfo.Instance.RefreshInfo(classType); } } } catch (Exception exception) { throw new Exception( ExceptionLocalizerTemplate <SystemExceptionResourceLocalizer, ExceptionId> .GetExceptionMessage( ExceptionId.ErrorOccursWhileAddingTheCustomProperty, modelRuntimeMember.MemberInfo.MemberType, ((IModelClass)modelRuntimeMember.Parent).Name, modelRuntimeMember.Name, exception.Message)); } } }
static void CreateXpandCustomMemberInfo(IModelMemberEx modelMemberEx, XPObjectSpace objectSpace) { try { Type classType = modelMemberEx.ModelClass.TypeInfo.Type; XPClassInfo xpClassInfo = XpandModuleBase.Dictiorary.GetClassInfo(classType); lock (xpClassInfo) { var customMemberInfo = xpClassInfo.FindMember(modelMemberEx.Name) as XPCustomMemberInfo; if (customMemberInfo == null) { customMemberInfo = CreateMemberInfo(modelMemberEx, xpClassInfo); ((IModelTypesInfoProvider)modelMemberEx.Application).TypesInfo.RefreshInfo(classType); AddAttributes(modelMemberEx, customMemberInfo); } var xpandCustomMemberInfo = customMemberInfo as XpandCustomMemberInfo; if (xpandCustomMemberInfo != null) { CreateColumn(modelMemberEx as IModelMemberPersistent, objectSpace, xpandCustomMemberInfo); CreateForeignKey(modelMemberEx as IModelMemberOneToManyCollection, objectSpace, xpandCustomMemberInfo); UpdateMember(modelMemberEx, customMemberInfo); } } } catch (Exception exception) { throw new Exception( ExceptionLocalizerTemplate <SystemExceptionResourceLocalizer, ExceptionId> .GetExceptionMessage( ExceptionId.ErrorOccursWhileAddingTheCustomProperty, modelMemberEx.MemberInfo.MemberType, ((IModelClass)modelMemberEx.Parent).Name, modelMemberEx.Name, exception.Message)); } }
protected internal virtual void ControllerOnCustomShowNavigationItem(object sender, CustomShowNavigationItemEventArgs args) { if (args.FitToObjectType(Application, typeof(ModelDifferenceObject)) && SecuritySystem.Instance is ISecurityComplex) { SecuritySystem.ReloadPermissions(); if (!SecuritySystemExtensions.IsGranted(new EditModelPermission(ModelAccessModifier.Allow), false)) { args.Handled = true; throw new SecurityException(ExceptionLocalizerTemplate <SystemExceptionResourceLocalizer, ExceptionId> .GetExceptionMessage(ExceptionId.PermissionIsDenied)); } } }