summaryrefslogtreecommitdiffstats
path: root/src/main.lib/Plugins/InstallationPlugins/IISWeb/IISWebOptions.cs
blob: 490c8c71e6d9d9d1afe6d98cd8a7e8f24e7fa1ee (plain)
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
using PKISharp.WACS.Clients.IIS;
using PKISharp.WACS.Plugins.Base;
using PKISharp.WACS.Plugins.Base.Options;

namespace PKISharp.WACS.Plugins.InstallationPlugins
{
    [Plugin("ea6a5be3-f8de-4d27-a6bd-750b619b2ee2")]
    internal class IISWebOptions : InstallationPluginOptions<IISWeb>
    {
        public long? SiteId { get; set; }
        public string? NewBindingIp { get; set; }
        public int? NewBindingPort { get; set; }

        public override string Name => "IIS";
        public override string Description => "Create or update https bindings in IIS";

        public IISWebOptions() { }
        public IISWebOptions(IISWebArguments? args)
        {
            var sslIp = args?.SSLIPAddress;
            if (!string.IsNullOrEmpty(sslIp) && sslIp != IISClient.DefaultBindingIp)
            {
                NewBindingIp = sslIp;
            }
            var sslPortRaw = args?.SSLPort;
            if (!string.IsNullOrEmpty(sslPortRaw))
            {
                // Already validated by the ArgumentsProvider
                var sslPort = int.Parse(sslPortRaw);
                if (sslPort != IISClient.DefaultBindingPort)
                {
                    NewBindingPort = sslPort;
                }
            }
        }
    }
}