コード例 #1
0
        //public static void ReplacePropertyBindingUsage(IList<BindingExpression> bindings, BaseTag baseTag)
        //{
        //    var conditional = baseTag as Conditional;

        //    foreach (var binding in bindings)
        //    {
        //        if (baseTag != null)
        //        {
        //            if (HasBindingExpression(baseTag.Property))
        //            {
        //                baseTag.Property = ReplaceBindingExpressions(binding, baseTag.Property);
        //            }
        //            if (conditional != null)
        //            {
        //                if (HasBindingExpression(conditional.CompareProperty))
        //                {
        //                    conditional.CompareProperty = ReplaceBindingExpressions(binding, conditional.CompareProperty);
        //                }
        //                if (HasBindingExpression(conditional.CompareValue))
        //                {
        //                    conditional.CompareValue = ReplaceBindingExpressions(binding, conditional.CompareValue);
        //                }
        //            }
        //        }
        //    }
        //}

        private static IList<BindingReplacement> BuildBindingReplacements(BindingExpression binding, string content, char? surroundChar = null)
        {
            var replacements = new List<BindingReplacement>();

            if (String.IsNullOrEmpty(content))
                return replacements;

            var bindingExpressions = FindBindingExpressions(content, surroundChar);

            foreach (var bindingExpression in bindingExpressions)
            {
                if (String.Compare(bindingExpression.Name, binding.Name, true) == 0)
                {
                    var replacement = new BindingReplacement
                    {
                        Name = binding.Name,
                        Placeholder = bindingExpression.Placeholder,
                        Value = binding.Value,
                        FullPropertyName = binding.FullPropertyName
                    };

                    if (!String.IsNullOrEmpty(binding.Value) || !String.IsNullOrEmpty(binding.FullPropertyName))
                    {
                        replacements.Add(replacement);
                    }
                }
            }

            return replacements;
        }
コード例 #2
0
ファイル: SqlTagContext.cs プロジェクト: techvenky/mybatisnet
        /// <summary>
        /// NOTE: Seems as though this class was written to not have knowledge of BaseTag, I just don't understand why.
        /// </summary>
        /// <param name="tag"></param>
        public void RememberBinding(Bind tag)
        {
            if (tag == null)
                return;

            var bindExpression = GetBindExpression(tag.Name);
            var exists = bindExpression != null;

            if (bindExpression == null)
                bindExpression = new BindingExpression(tag.Name);

            bindExpression.Value = tag.Value;
            bindExpression.PropertyName = tag.Property;
            bindExpression.FullPropertyName = ReflectionMapper.GetReflectedFullName(this, tag, tag.Property);

            if (!exists)
                _bindings.Add(bindExpression);
        }