RaceLapTimer/RaceLapTimer/Interfaces/IProviderConfiguration.cs
chris.watts90@outlook.com d207d9448b create IDocumentPathProvider to allow flexibility for exporting.
Improve Export interface for IExportManager and IFileExporter to prevent leaky abstraction
Add comments (INotifierProvider, IPluginInformation, IPluginDetails)
Create IProviderConfiguration for configuration settings of plugins in future.
Create Factory and Interface for IRaceStartController components, in order to control how the race starts.
Create Race Objects (RaceLap, RaceSessionHistory)
2018-02-28 19:25:47 +00:00

30 lines
1.1 KiB
C#

using System.Collections.Generic;
namespace Interfaces
{
public interface IProviderConfiguration
{
/// <summary>
/// Get a Key value pair of configuration settings
/// </summary>
/// <example>
/// Key: Port Number
/// Value: 1111
/// </example>
Dictionary<string, string> ConfigurationSettings { get; }
/// <summary>
/// Parse the given configuration settings and validate the given values.
/// </summary>
/// <param name="configurations">Key value pairs of configuration settings</param>
/// <returns>A Dictionary containing a list of validation errors for each configuration setting (Key).</returns>
Dictionary<string, List<ValidationError>> ValidateConfigurations(Dictionary<string, string> configurations);
/// <summary>
/// Set/update the configuration settings.
/// </summary>
/// <param name="configurations">Dictionary of key value pairs detailing the configuration settings.</param>
void SetConfigurations(Dictionary<string, string> configurations);
}
}