Пример #1
0
        /// <summary>
        ///   Attempts to parse a value to the date/time, using the specified settings.
        /// </summary>
        /// <param name="value">String value to be parsed.</param>
        /// <param name="option"></param>
        /// <returns>True if the string can be parsed to this value type, false otherwise.</returns>
        private static bool TryParse(string value, DateTimeOption option, CultureInfo culture)
        {
            if (value == null)
                return false;
            if (value.Length == 0)
                return false;

            List<string> options = new List<string>();
            if (option == DateTimeOption.Date || option == DateTimeOption.DateTime)
            {
                options.Add("d");
                options.Add("D");
            }
            if (option == DateTimeOption.Time || option == DateTimeOption.DateTime)
            {
                options.Add("t");
                options.Add("T");
            }
            if (option == DateTimeOption.MonthDay || option == DateTimeOption.DateTime)
                options.Add("m");
            if (option == DateTimeOption.YearMonth || option == DateTimeOption.DateTime)
                options.Add("Y");
            if (option == DateTimeOption.DateTime)
            {
                options.Add("f");
                options.Add("F");
                options.Add("g");
                options.Add("G");
                options.Add("o");
                options.Add("R");
                options.Add("s");
                options.Add("u");
                options.Add("U");
            }

            DateTimeStyles styles = DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.RoundtripKind;
            DateTime returnValue;
            foreach (string item in options)
            {
                if (DateTime.TryParseExact(value, item, culture, styles, out returnValue))
                    return true;
            }
            return false;
        }
Пример #2
0
        /// <summary>
        ///   Loads the configuration properties from XML node.
        /// </summary>
        /// <param name="parent">Parent XML node containing the child settings elements.</param>
        public override void Load(XmlNode parent)
        {
            foreach (XmlNode node in parent.ChildNodes)
            {
                if (node.NodeType == XmlNodeType.Element && string.Compare(node.Name, "setting", true) == 0)
                {
                    XmlAttribute nameAttrib = node.Attributes["name"];
                    XmlAttribute valueAttrib = node.Attributes["value"];
                    if (nameAttrib != null && valueAttrib != null)
                    {
                        // Set DateTimeSelect if found.
                        if (nameAttrib.Value == "DateTimeSelect")
                        {
                            DateTimeOption value;
                            if (Enum.TryParse<DateTimeOption>(valueAttrib.Value, out value))
                                DateTimeSelect = value;
                        }

                        // Set Culture if found.
                        if (nameAttrib.Value == "Culture")
                        {
                            try
                            {
                                Culture = CultureInfo.GetCultureInfo(valueAttrib.Value);
                            }
                            catch (Exception)
                            { }
                        }
                    }
                }
            }
        }