using System; using System.Xml.Serialization; namespace MediaBrowser.Model.Configuration { /// <summary> /// Serves as a common base class for the Server and UI application Configurations /// ProtoInclude tells Protobuf about subclasses, /// The number 50 can be any number, so long as it doesn't clash with any of the ProtoMember numbers either here or in subclasses. /// </summary> public class BaseApplicationConfiguration { /// <summary> /// Initializes a new instance of the <see cref="BaseApplicationConfiguration" /> class. /// </summary> public BaseApplicationConfiguration() { LogFileRetentionDays = 3; } /// <summary> /// Gets or sets the number of days we should retain log files. /// </summary> /// <value>The log file retention days.</value> public int LogFileRetentionDays { get; set; } /// <summary> /// Gets or sets a value indicating whether this instance is first run. /// </summary> /// <value><c>true</c> if this instance is first run; otherwise, <c>false</c>.</value> public bool IsStartupWizardCompleted { get; set; } /// <summary> /// Gets or sets the cache path. /// </summary> /// <value>The cache path.</value> public string? CachePath { get; set; } /// <summary> /// Gets or sets the last known version that was ran using the configuration. /// </summary> /// <value>The version from previous run.</value> [XmlIgnore] public Version? PreviousVersion { get; set; } /// <summary> /// Gets or sets the stringified PreviousVersion to be stored/loaded, /// because System.Version itself isn't xml-serializable. /// </summary> /// <value>String value of PreviousVersion.</value> public string? PreviousVersionStr { get => PreviousVersion?.ToString(); set { if (Version.TryParse(value, out var version)) { PreviousVersion = version; } } } } }