/// <summary> /// Handles DataUpdated event from ultraviolet sensor. /// </summary> /// <param name="sender">Object which invoked the event.</param> /// <param name="e">Ultraviolet sensor data.</param> private void OnDataUpdated(object sender, UltravioletSensorDataUpdatedEventArgs e) { UvLevel level = UvLevel.None; if (e.UltravioletIndex < 3.0) { level = UvLevel.Low; } else if (e.UltravioletIndex < 6.0) { level = UvLevel.Moderate; } else if (e.UltravioletIndex < 8.0) { level = UvLevel.High; } else if (e.UltravioletIndex < 11.0) { level = UvLevel.VeryHigh; } else { level = UvLevel.Extreme; } UvLevelUpdated?.Invoke(this, level); }
/// <summary> /// Gets text color associated with UvLevel enum value. /// </summary> /// <param name="value">Type of uv level.</param> /// <returns>Color of the text associated with UvLevel enum value.</returns> public static Color GetTextColor(this UvLevel value) { if (!(GetLevelDescriptionAttribute(value) is UvLevelDescriptionAttribute levelAttribute)) { return(Color.Black); } return(levelAttribute.TextColor); }
/// <summary> /// Gets uv index associated with UvLevel enum value. /// </summary> /// <param name="value">Type of uv level.</param> /// <returns>Uv index associated with UvLevel enum value.</returns> public static string GetUvIndex(this UvLevel value) { if (!(GetLevelDescriptionAttribute(value) is UvLevelDescriptionAttribute levelAttribute)) { return(null); } return(levelAttribute.UvIndex); }
/// <summary> /// Gets filename associated with UvLevel enum value. /// </summary> /// <param name="value">Type of uv level.</param> /// <returns>Filename associated with UvLevel enum value.</returns> public static string GetFilename(this UvLevel value) { if (!(GetLevelDescriptionAttribute(value) is UvLevelDescriptionAttribute levelAttribute)) { return(null); } return(levelAttribute.Filename); }
/// <summary> /// Gets UvLevelDescriptionAttribute associated with UvLevel value. /// </summary> /// <param name="value">Type of uv level.</param> /// <returns>Attributes associated with UvLevel enum value.</returns> private static UvLevelDescriptionAttribute GetLevelDescriptionAttribute(UvLevel value) { if (!(value.GetType().GetField(value.ToString()) is FieldInfo fieldInfo)) { return(null); } if (!(fieldInfo.GetCustomAttribute(typeof(UvLevelDescriptionAttribute)) is UvLevelDescriptionAttribute levelAttribute)) { return(null); } return(levelAttribute); }
/// <summary> /// Initializes class. /// </summary> /// <param name="level">Uv level.</param> public DetailsViewModel(UvLevel level) { Level = level; }