/
MythClient.cs
51 lines (46 loc) · 1.44 KB
/
MythClient.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
using System;
using System.Windows.Forms;
using au.Applications.MythClient.Settings;
using au.Applications.MythClient.Settings.Types;
using au.Applications.MythClient.UI;
using au.IO.Web.API.MythTV;
using au.UI.LatestVersion;
namespace au.Applications.MythClient {
/// <summary>
/// MythTV Recorded Programs application
/// </summary>
internal class MythClient {
/// <summary>
/// Main entry point
/// </summary>
[STAThread]
private static void Main() {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
SettingsManager settingsManager = new();
if(PromptForRequiredSettings(settingsManager.Settings))
Application.Run(
new RecordingsWindow(
settingsManager.Settings,
new VersionManager("misterhaan", "MythClient"),
new Recordings.Recordings(
settingsManager.Settings,
new ApiFactory()
)
)
);
settingsManager.Save();
}
/// <summary>
/// Check if required settings have values and prompt for them if not.
/// </summary>
/// <param name="settings">Current application settings</param>
/// <returns>True if required settings have values</returns>
private static bool PromptForRequiredSettings(IMythSettings settings) {
if(!settings.HasRequiredSettings)
using(SettingsWindow window = new(settings.Server))
window.ShowDialog();
return settings.HasRequiredSettings;
}
}
}