Exemplo n.º 1
0
        /// <summary>
        /// Gets the user's preferences for the given preference kind.
        /// </summary>
        /// <param name="preference">The preference kind.</param>
        /// <typeparam name="T">Type of preference.</typeparam>
        /// <returns>A {T} array containing the user's preference.</returns>
        public T[] GetPreferenceValues <T>(PreferenceKind preference)
        {
            var val = Preferences.First(p => p.Kind == preference).Value;

            if (string.IsNullOrEmpty(val))
            {
                return(Array.Empty <T>());
            }

            // Convert array of {string} to array of {T}
            var converter      = TypeDescriptor.GetConverter(typeof(T));
            var stringValues   = val.Split(Delimiter);
            var convertedCount = 0;
            var parsedValues   = new T[stringValues.Length];

            for (var i = 0; i < stringValues.Length; i++)
            {
                try
                {
                    var parsedValue = converter.ConvertFromString(stringValues[i].Trim());
                    if (parsedValue != null)
                    {
                        parsedValues[convertedCount++] = (T)parsedValue;
                    }
                }
                catch (FormatException)
                {
                    // Unable to convert value
                }
            }

            return(parsedValues[..convertedCount]);
Exemplo n.º 2
0
 /// <summary>
 /// Sets the specified preference to the given value.
 /// </summary>
 /// <param name="preference">The preference kind.</param>
 /// <param name="values">The values.</param>
 public void SetPreference(PreferenceKind preference, string[] values)
 {
     Preferences.First(p => p.Kind == preference).Value
         = string.Join(Delimiter.ToString(CultureInfo.InvariantCulture), values);
 }
Exemplo n.º 3
0
        /// <summary>
        /// Gets the user's preferences for the given preference kind.
        /// </summary>
        /// <param name="preference">The preference kind.</param>
        /// <returns>A string array containing the user's preferences.</returns>
        public string[] GetPreference(PreferenceKind preference)
        {
            var val = Preferences.First(p => p.Kind == preference).Value;

            return(Equals(val, string.Empty) ? Array.Empty <string>() : val.Split(Delimiter));
        }
Exemplo n.º 4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Preference"/> class.
 /// Public constructor with required data.
 /// </summary>
 /// <param name="kind">The preference kind.</param>
 /// <param name="value">The value.</param>
 public Preference(PreferenceKind kind, string value)
 {
     Kind  = kind;
     Value = value ?? throw new ArgumentNullException(nameof(value));
 }
Exemplo n.º 5
0
 /// <summary>
 /// Static create function (for use in LINQ queries, etc.)
 /// </summary>
 /// <param name="kind">The preference kind.</param>
 /// <param name="value">The value.</param>
 /// <returns>The new instance.</returns>
 public static Preference Create(PreferenceKind kind, string value)
 {
     return(new Preference(kind, value));
 }
Exemplo n.º 6
0
        /// <summary>
        /// Gets the user's preferences for the given preference kind.
        /// </summary>
        /// <param name="preference">The preference kind.</param>
        /// <returns>A string array containing the user's preferences.</returns>
        public string[] GetPreference(PreferenceKind preference)
        {
            var val = Preferences.FirstOrDefault(p => p.Kind == preference)?.Value;

            return(string.IsNullOrEmpty(val) ? Array.Empty <string>() : val.Split(Delimiter));
        }