private static InteractionBuffer IsUsable(IFacetHolder facetHolder, InteractionContext ic, InteractionBuffer buf) {
     IFacet[] facets = facetHolder.GetFacets(FacetFilters.IsA(typeof (IDisablingInteractionAdvisor)));
     foreach (IDisablingInteractionAdvisor advisor in facets) {
         buf.Append(advisor.Disables(ic));
     }
     return buf;
 }
 public static InteractionBuffer IsValid(IFacetHolder facetHolder, InteractionContext ic, InteractionBuffer buf) {
     IFacet[] facets = facetHolder.GetFacets(FacetFilters.IsA(typeof (IValidatingInteractionAdvisor)));
     foreach (IValidatingInteractionAdvisor advisor in facets) {
         buf.Append(advisor.Invalidates(ic));
     }
     return buf;
 }
 public static bool IsVisible(IFacetHolder facetHolder, InteractionContext ic) {
     var buf = new InteractionBuffer();
     IFacet[] facets = facetHolder.GetFacets(FacetFilters.IsA(typeof (IHidingInteractionAdvisor)));
     foreach (IHidingInteractionAdvisor advisor in facets) {
         buf.Append(advisor.Hides(ic));
     }
     return IsVisible(buf);
 }
 public static bool IsVisibleWhenPersistent(IFacetHolder facetHolder, InteractionContext ic) {
     var buf = new InteractionBuffer();
     IFacet[] facets = facetHolder.GetFacets(FacetFilters.IsA(typeof (IHidingInteractionAdvisor)));
     foreach (IHidingInteractionAdvisor advisor in facets) {
         if (advisor is IHiddenFacet) {
             if (((IHiddenFacet) advisor).Value == When.OncePersisted) {
                 continue;
             }
         }
         buf.Append(advisor.Hides(ic));
     }
     return IsVisible(buf);
 }
        public virtual IConsent IsAssociationValid(INakedObject inObject, INakedObject reference) {
            if (reference != null && !reference.Specification.IsOfType(Specification)) {
                return GetConsent(string.Format(Resources.NakedObjects.TypeMismatchError, Specification.SingularName));
            }

            if (!inObject.ResolveState.IsNotPersistent()) {
                if (reference != null && !reference.Specification.IsParseable && reference.ResolveState.IsNotPersistent()) {
                    return GetConsent(Resources.NakedObjects.TransientFieldMessage);
                }
            }

            var buf = new InteractionBuffer();
            InteractionContext ic = InteractionContext.ModifyingPropParam(NakedObjectsContext.Session, false, inObject, Identifier, reference);
            InteractionUtils.IsValid(this, ic, buf);
            return InteractionUtils.IsValid(buf);
        }
 /// <summary>
 ///     To decode an <see cref="InteractionBuffer" /> returned by
 ///     <see
 ///         cref="IsValid(IFacetHolder,InteractionContext,InteractionBuffer)" />
 /// </summary>
 public static IConsent IsValid(InteractionBuffer buf) {
     return GetConsent(buf.ToString());
 }
 /// <summary>
 ///     To decode an <see cref="InteractionBuffer" /> returned by
 ///     <see
 ///         cref="IsUsable(IFacetHolder,InteractionContext,InteractionBuffer)" />
 /// </summary>
 private static IConsent IsUsable(InteractionBuffer buf) {
     return GetConsent(buf.ToString());
 }
 private static bool IsVisible(InteractionBuffer buf) {
     return buf.IsEmpty;
 }
 /// <summary>
 ///     Checks declarative constraints, and then checks imperatively.
 /// </summary>
 public virtual IConsent IsParameterSetValid(INakedObject nakedObject, INakedObject[] parameterSet) {
     InteractionContext ic;
     var buf = new InteractionBuffer();
     if (parameterSet != null) {
         INakedObject[] parms = RealParameters(nakedObject, parameterSet);
         for (int i = 0; i < parms.Length; i++) {
             ic = InteractionContext.ModifyingPropParam(NakedObjectsContext.Session, false, RealTarget(nakedObject), Identifier, parameterSet[i]);
             InteractionUtils.IsValid(GetParameter(i), ic, buf);
         }
     }
     INakedObject target = RealTarget(nakedObject);
     ic = InteractionContext.InvokingAction(NakedObjectsContext.Session, false, target, Identifier, parameterSet);
     InteractionUtils.IsValid(this, ic, buf);
     return InteractionUtils.IsValid(buf);
 }