main
cs 79 lines 2.82 KB
Raw
1 // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2
3 namespace WixToolset.Iis
4 {
5 using WixToolset.Data;
6 using WixToolset.Iis.Symbols;
7
8 public static partial class IisSymbolDefinitions
9 {
10 public static readonly IntermediateSymbolDefinition IIsWebAddress = new IntermediateSymbolDefinition(
11 IisSymbolDefinitionType.IIsWebAddress.ToString(),
12 new[]
13 {
14 new IntermediateFieldDefinition(nameof(IIsWebAddressSymbolFields.WebRef), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(IIsWebAddressSymbolFields.IP), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(IIsWebAddressSymbolFields.Port), IntermediateFieldType.String),
17 new IntermediateFieldDefinition(nameof(IIsWebAddressSymbolFields.Header), IntermediateFieldType.String),
18 new IntermediateFieldDefinition(nameof(IIsWebAddressSymbolFields.Secure), IntermediateFieldType.Number),
19 },
20 typeof(IIsWebAddressSymbol));
21 }
22 }
23
24 namespace WixToolset.Iis.Symbols
25 {
26 using WixToolset.Data;
27
28 public enum IIsWebAddressSymbolFields
29 {
30 WebRef,
31 IP,
32 Port,
33 Header,
34 Secure,
35 }
36
37 public class IIsWebAddressSymbol : IntermediateSymbol
38 {
39 public IIsWebAddressSymbol() : base(IisSymbolDefinitions.IIsWebAddress, null, null)
40 {
41 }
42
43 public IIsWebAddressSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(IisSymbolDefinitions.IIsWebAddress, sourceLineNumber, id)
44 {
45 }
46
47 public IntermediateField this[IIsWebAddressSymbolFields index] => this.Fields[(int)index];
48
49 public string WebRef
50 {
51 get => this.Fields[(int)IIsWebAddressSymbolFields.WebRef].AsString();
52 set => this.Set((int)IIsWebAddressSymbolFields.WebRef, value);
53 }
54
55 public string IP
56 {
57 get => this.Fields[(int)IIsWebAddressSymbolFields.IP].AsString();
58 set => this.Set((int)IIsWebAddressSymbolFields.IP, value);
59 }
60
61 public string Port
62 {
63 get => this.Fields[(int)IIsWebAddressSymbolFields.Port].AsString();
64 set => this.Set((int)IIsWebAddressSymbolFields.Port, value);
65 }
66
67 public string Header
68 {
69 get => this.Fields[(int)IIsWebAddressSymbolFields.Header].AsString();
70 set => this.Set((int)IIsWebAddressSymbolFields.Header, value);
71 }
72
73 public int? Secure
74 {
75 get => this.Fields[(int)IIsWebAddressSymbolFields.Secure].AsNullableNumber();
76 set => this.Set((int)IIsWebAddressSymbolFields.Secure, value);
77 }
78 }
79 }