Ejemplo n.º 1
0
        private PropertyValue GetOrAddNestedObject(string propertyName, out DbParameter dbParameter)
        {
            dbParameter = default(DbParameter);
            if (_cachedNoFindProperty.ContainsKey(propertyName))
            {
                return(PropertyValue.NotFindProperty);
            }

            var reqParamNames    = propertyName.Split('.');
            var reqRootParamName = reqParamNames[0];

            if (!_dbParameters.ContainsKey(reqRootParamName))
            {
                _cachedNoFindProperty.Add(propertyName, true);
                return(PropertyValue.NotFindProperty);
            }
            var           reqRootParam    = _dbParameters[reqRootParamName];
            var           nestedParamName = propertyName.Substring(reqRootParamName.Length + 1);
            PropertyValue paramVal        = GetAccessorUtil.GetValue(reqRootParam.Value, nestedParamName, IgnoreParameterCase);

            if (paramVal.Status != PropertyValue.GetStatus.Ok)
            {
                _cachedNoFindProperty.Add(propertyName, true);
                return(PropertyValue.NotFindProperty);
            }
            dbParameter = new DbParameter {
                Name = propertyName, Value = paramVal.Value
            };
            _dbParameters.Add(dbParameter.Name, dbParameter);
            return(paramVal);
        }
Ejemplo n.º 2
0
        public void GetNestedParamVal_Test()
        {
            var first = new First
            {
                Second = new Second
                {
                    Third = new Third
                    {
                        Fourth = new Fourth
                        {
                            Value = "GoodJob"
                        }
                    }
                }
            };

            var val = GetAccessorUtil.GetValue(first, "Second.Third.Fourth.Value", false);

            Assert.Equal("GoodJob", val.Value);
        }