Пример #1
0
        //------------------------------------------------------------------------------
        public static string GetFullSettingName(Type settingsType,
                                                MemberInfo mi, SettingBaseAttribute baseSettingAttr,
                                                ISettingsSerializerWishes wishes,
                                                SettingNameMode nameMode)
        {
            var delimeter = GetSettingNameDelimeter(wishes);

            Debug.Assert(mi != null);
            Debug.Assert(baseSettingAttr != null);

            string settingName;

            if (string.IsNullOrEmpty(baseSettingAttr.Name))
            {
                settingName = mi.Name;
            }
            else
            {
                settingName  = baseSettingAttr.Name;
                settingsType = null;
            }

            settingName = GetFullSettingNameByPatternAndAddPrefix(settingName, wishes, settingsType, nameMode);

            return(settingName);
        }
Пример #2
0
        //------------------------------------------------------------------------------
        static string GetFullSettingNameByPatternAndAddPrefix(string settingName, ISettingsSerializerWishes wishes, Type settingsType,
                                                              SettingNameMode nameMode)
        {
            if (settingsType != null)
            {
                var settingNamePattern = SettingsBaseConfiguration.SettingsNamePattern;

                string updatedSettingName;
                string updatedClassName;
                string updatedNamespaceName;

                if (wishes != null)
                {
                    updatedSettingName   = wishes.RemoveInappropriateSymbols(settingName);
                    updatedClassName     = wishes.RemoveInappropriateSymbols(settingsType.Name);
                    updatedNamespaceName = wishes.RemoveInappropriateSymbols(settingsType.Namespace);
                }
                else
                {
                    updatedSettingName   = settingName;
                    updatedClassName     = settingsType.Name;
                    updatedNamespaceName = settingsType.Namespace;
                }

                settingNamePattern = settingNamePattern.Replace(SettingsBaseConfiguration.FieldNamePatternName, updatedSettingName);

                var delimeter = GetSettingNameDelimeter(wishes);
                settingNamePattern = settingNamePattern.Replace(SettingsBaseConfiguration.DelimeterPatternName, delimeter.ToString());

                if (String.IsNullOrEmpty(settingsType.Namespace))
                {
                    // remove empty namespace if it doesn't exist
                    settingNamePattern = settingNamePattern.Replace(SettingsBaseConfiguration.NamespacePatternName, "");
                }
                else
                {
                    settingNamePattern = settingNamePattern.Replace(SettingsBaseConfiguration.NamespacePatternName,
                                                                    updatedNamespaceName);
                }

                settingNamePattern = settingNamePattern.Replace(SettingsBaseConfiguration.ClassNamePatternName,
                                                                updatedClassName);

                settingName = settingNamePattern;
            }

            var fullSettingName = SettingNameFormatInfo.AddSettingNameModeAndVersion(settingName, wishes, nameMode);

            return(fullSettingName);
        }
Пример #3
0
        //------------------------------------------------------------------------------
        public static char GetSettingNameDelimeter(ISettingsSerializerWishes wishes)
        {
            char delimeter = SettingsBaseConfiguration.DefaultDelimeter;

            if (wishes != null)
            {
                delimeter = wishes.Delimeter();
            }

            if (delimeter != '.' && delimeter != '_')
            {
                Debug.Assert(false, String.Format("Unknown delimeter '{0}'. Set to default '{1}'", delimeter, SettingsBaseConfiguration.DefaultDelimeter));
                delimeter = SettingsBaseConfiguration.DefaultDelimeter;
            }

            return(delimeter);
        }
Пример #4
0
        //------------------------------------------------------------------------------
        public static string AddSettingNameModeAndVersion(string settingName, ISettingsSerializerWishes wishes, SettingNameMode nameMode)
        {
            var delimeter = GetSettingNameDelimeter(wishes);

            settingName = SettingNameFormatInfo.CurrentVersionPrefix +
                          delimeter +
                          settingName;

            if (nameMode == SettingNameMode.Dynamic)
            {
                settingName = SettingNameFormatInfo.DynamicSettingNamePrefix + delimeter + settingName;
            }
            else if (nameMode == SettingNameMode.Service)
            {
                settingName = SettingNameFormatInfo.ServiceSettingNamePrefix + delimeter + settingName;
            }

            return(settingName);
        }
Пример #5
0
        //------------------------------------------------------------------------------
        public static string GetSettingsTypeInfo(Type settingsType, ISettingsSerializerWishes wishes)
        {
            var delimeter = SettingNameFormatInfo.GetSettingNameDelimeter(wishes);

            string settingsTypeInfo;

            if (wishes != null)
            {
                var updatedNamespaceName = wishes.RemoveInappropriateSymbols(settingsType.Namespace);
                var updatedClassName     = wishes.RemoveInappropriateSymbols(settingsType.Name);

                settingsTypeInfo = updatedNamespaceName + delimeter + updatedClassName;
            }
            else
            {
                settingsTypeInfo = settingsType.Namespace + delimeter + settingsType.Name;
            }

            return(settingsTypeInfo);
        }
Пример #6
0
        //------------------------------------------------------------------------------
        public static string InsertSettingNamePrefix(string fullSettingName, string prefix, ISettingsSerializerWishes wishes)
        {
            var delimeter = GetSettingNameDelimeter(wishes);

            // ^(([DS]_)?v\d+_)(.*)
            var strMatch = String.Format("^(([{0}{1}]{2})?{3}\\d+{2})(.*)",
                                         Regex.Escape(SettingNameFormatInfo.DynamicSettingNamePrefix),
                                         Regex.Escape(SettingNameFormatInfo.ServiceSettingNamePrefix),
                                         Regex.Escape(delimeter.ToString()),
                                         Regex.Escape(SettingNameFormatInfo.CurrentVersionPrefixStartPart));

            Match match = Regex.Match(fullSettingName, strMatch, RegexOptions.None);

            if (match.Success)
            {
                fullSettingName = match.Groups[1] + prefix + delimeter + match.Groups[3];

                return(fullSettingName);
            }

            throw new ArgumentException(String.Format("incorrect setting name: {0}", fullSettingName));
        }
Пример #7
0
        //------------------------------------------------------------------------------
        static string GetFullDynamicSettingsOrderSettingNameImpl(string settingName, ISettingsSerializerWishes wishes, Type settingsClassType)
        {
            var fullSettingName = GetFullSettingName(settingName, wishes, settingsClassType, SettingNameMode.Service);

            return(fullSettingName);
        }
Пример #8
0
        //------------------------------------------------------------------------------
        public static string GetFullDynamicSettingsCustomOrderSettingName(ISettingsSerializerWishes wishes, Type settingsClassType)
        {
            const string settingName = "DynamicSettingsCustomOrder";

            return(GetFullDynamicSettingsOrderSettingNameImpl(settingName, wishes, settingsClassType));
        }
Пример #9
0
 //------------------------------------------------------------------------------
 public static string GetFullSettingName(string settingName, ISettingsSerializerWishes wishes, Type settingsType,
                                         SettingNameMode nameMode)
 {
     return(GetFullSettingNameByPatternAndAddPrefix(settingName, wishes, settingsType, nameMode));
 }