Example #1
0
        public static T GetBagValue <T>(this IShouldHaveBags haveBags, string bagKey, T defaultBagValue = default(T))
        {
            var bags = haveBags.TryGetBags(true);

            if (!bags.ContainsKey(bagKey))
            {
                return(defaultBagValue);
            }

            var bagItemValue     = bags[bagKey];
            var bagItemConvertTo = SafeConvertTo <T>(bagItemValue);

            return(bagItemConvertTo);
        }
Example #2
0
        public static void SetBagSubValue(this IShouldHaveBags haveBags, string bagKey, string subKey, object subValue)
        {
            var bags             = haveBags.TryGetBags(true);
            var containsBagValue = bags.ContainsKey(bagKey);

            if (!containsBagValue)
            {
                bags[bagKey] = new ConcurrentDictionary <string, object>(StringComparer.OrdinalIgnoreCase);
            }


            var convertToDic = SafeConvertTo <IDictionary <string, object> >(bags[bagKey]);

            if (convertToDic == null)
            {
                convertToDic = new ConcurrentDictionary <string, object>(StringComparer.OrdinalIgnoreCase);
            }

            convertToDic[subKey] = subValue;
        }
Example #3
0
        public static T GetBagSubValue <T>(this IShouldHaveBags haveBags, string bagKey, string subKey, T defaultSubValue)
        {
            var bags             = haveBags.TryGetBags(true);
            var containsBagValue = bags.ContainsKey(bagKey);

            if (!containsBagValue)
            {
                return(defaultSubValue);
            }

            var theBagValue = bags[bagKey];

            var subDic    = SafeConvertTo <IDictionary <string, object> >(theBagValue);
            var theSubKey = subDic.Keys.SingleOrDefault(x => x.Equals(subKey, StringComparison.OrdinalIgnoreCase));

            if (theSubKey == null)
            {
                return(defaultSubValue);
            }

            var convertTo = SafeConvertTo <T>(subDic[theSubKey]);

            return(convertTo);
        }