예제 #1
0
        public override object GetLeftValue(T ruleContext)
        {
            if (ruleContext == null)
            {
                Log.Error($"SegmentationContactFacetMemberValueCondition<T> - {nameof(GetLeftValue)} - ruleContext cannot be null. Stack: {Environment.StackTrace}", this);
                return(null);
            }
            Database db;

            if (ruleContext.Item == null)
            {
                Log.Error($"SegmentationContactFacetMemberValueCondition<T> - {nameof(GetLeftValue)} - ruleContext.Item is null the database will be set to the ContentDatabase by default: '{Sitecore.Context.ContentDatabase}'. Stack: {Environment.StackTrace}", this);
                db = Sitecore.Context.ContentDatabase;
            }
            else if (ruleContext.Item.Database == null)
            {
                Log.Error($"SegmentationContactFacetMemberValueCondition<T> - {nameof(GetLeftValue)} - ruleContext.Item.Database is null the database will be set to the ContentDatabase by default: '{Sitecore.Context.ContentDatabase}'. Stack: {Environment.StackTrace}", this);
                db = Sitecore.Context.ContentDatabase;
            }
            else
            {
                db = ruleContext.Item.Database;
            }

            var facetFullName = ContactFacetItemHelper.GetFacetMemberFullName(db, this.ContactFacetId, this.ContactFacetMemberId);

            if (string.IsNullOrEmpty(facetFullName))
            {
                return(null);
            }
            return(facetFullName);
        }
        public override Type GetDataType(T ruleContext)
        {
            if (ruleContext == null)
            {
                Log.Error($"SegmentationContactFacetMemberValueCondition<T> - {nameof(GetDataType)} - ruleContext cannot be null. Stack: {Environment.StackTrace}", this);
                return(null);
            }
            Database db;

            if (ruleContext.Item == null)
            {
                Log.Error($"SegmentationContactFacetMemberValueCondition<T> - {nameof(GetDataType)} - ruleContext.Item is null the database will be set to the ContentDatabase by default: '{Sitecore.Context.ContentDatabase}'. Stack: {Environment.StackTrace}", this);
                db = Sitecore.Context.ContentDatabase;
            }
            else if (ruleContext.Item.Database == null)
            {
                Log.Error($"SegmentationContactFacetMemberValueCondition<T> - {nameof(GetDataType)} - ruleContext.Item.Database is null the database will be set to the ContentDatabase by default: '{Sitecore.Context.ContentDatabase}'. Stack: {Environment.StackTrace}", this);
                db = Sitecore.Context.ContentDatabase;
            }
            else
            {
                db = ruleContext.Item.Database;
            }
            var type = ContactFacetItemHelper.GetFacetMemberValueType(db, this.ContactFacetId, this.ContactFacetMemberId);

            return(type);
        }
        public override object GetLeftValue(T ruleContext)
        {
            var value = ContactFacetItemHelper.GetFacetMemberValue(ruleContext.Item.Database, this.ContactFacetId, this.ContactFacetMemberId);

            if (value == null)
            {
                return(null);
            }
            return(value);
        }
        public override Type GetDataType(T ruleContext)
        {
            var type = ContactFacetItemHelper.GetFacetMemberValueType(ruleContext.Item.Database, this.ContactFacetId, this.ContactFacetMemberId);

            return(type);
        }