| 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 System; |
| 6 | using WixToolset.Data; |
| 7 | |
| 8 | public enum IisSymbolDefinitionType |
| 9 | { |
| 10 | Certificate, |
| 11 | CertificateHash, |
| 12 | IIsAppPool, |
| 13 | IIsFilter, |
| 14 | IIsHttpHeader, |
| 15 | IIsMimeMap, |
| 16 | IIsProperty, |
| 17 | IIsWebAddress, |
| 18 | IIsWebApplication, |
| 19 | IIsWebApplicationExtension, |
| 20 | IIsWebDir, |
| 21 | IIsWebDirProperties, |
| 22 | IIsWebError, |
| 23 | IIsWebLog, |
| 24 | IIsWebServiceExtension, |
| 25 | IIsWebSite, |
| 26 | IIsWebSiteCertificates, |
| 27 | IIsWebVirtualDir, |
| 28 | } |
| 29 | |
| 30 | public static partial class IisSymbolDefinitions |
| 31 | { |
| 32 | public static IntermediateSymbolDefinition ByName(string name) |
| 33 | { |
| 34 | if (!Enum.TryParse(name, out IisSymbolDefinitionType type)) |
| 35 | { |
| 36 | return null; |
| 37 | } |
| 38 | |
| 39 | return ByType(type); |
| 40 | } |
| 41 | |
| 42 | public static IntermediateSymbolDefinition ByType(IisSymbolDefinitionType type) |
| 43 | { |
| 44 | switch (type) |
| 45 | { |
| 46 | case IisSymbolDefinitionType.Certificate: |
| 47 | return IisSymbolDefinitions.Certificate; |
| 48 | |
| 49 | case IisSymbolDefinitionType.CertificateHash: |
| 50 | return IisSymbolDefinitions.CertificateHash; |
| 51 | |
| 52 | case IisSymbolDefinitionType.IIsAppPool: |
| 53 | return IisSymbolDefinitions.IIsAppPool; |
| 54 | |
| 55 | case IisSymbolDefinitionType.IIsFilter: |
| 56 | return IisSymbolDefinitions.IIsFilter; |
| 57 | |
| 58 | case IisSymbolDefinitionType.IIsHttpHeader: |
| 59 | return IisSymbolDefinitions.IIsHttpHeader; |
| 60 | |
| 61 | case IisSymbolDefinitionType.IIsMimeMap: |
| 62 | return IisSymbolDefinitions.IIsMimeMap; |
| 63 | |
| 64 | case IisSymbolDefinitionType.IIsProperty: |
| 65 | return IisSymbolDefinitions.IIsProperty; |
| 66 | |
| 67 | case IisSymbolDefinitionType.IIsWebAddress: |
| 68 | return IisSymbolDefinitions.IIsWebAddress; |
| 69 | |
| 70 | case IisSymbolDefinitionType.IIsWebApplication: |
| 71 | return IisSymbolDefinitions.IIsWebApplication; |
| 72 | |
| 73 | case IisSymbolDefinitionType.IIsWebApplicationExtension: |
| 74 | return IisSymbolDefinitions.IIsWebApplicationExtension; |
| 75 | |
| 76 | case IisSymbolDefinitionType.IIsWebDir: |
| 77 | return IisSymbolDefinitions.IIsWebDir; |
| 78 | |
| 79 | case IisSymbolDefinitionType.IIsWebDirProperties: |
| 80 | return IisSymbolDefinitions.IIsWebDirProperties; |
| 81 | |
| 82 | case IisSymbolDefinitionType.IIsWebError: |
| 83 | return IisSymbolDefinitions.IIsWebError; |
| 84 | |
| 85 | case IisSymbolDefinitionType.IIsWebLog: |
| 86 | return IisSymbolDefinitions.IIsWebLog; |
| 87 | |
| 88 | case IisSymbolDefinitionType.IIsWebServiceExtension: |
| 89 | return IisSymbolDefinitions.IIsWebServiceExtension; |
| 90 | |
| 91 | case IisSymbolDefinitionType.IIsWebSite: |
| 92 | return IisSymbolDefinitions.IIsWebSite; |
| 93 | |
| 94 | case IisSymbolDefinitionType.IIsWebSiteCertificates: |
| 95 | return IisSymbolDefinitions.IIsWebSiteCertificates; |
| 96 | |
| 97 | case IisSymbolDefinitionType.IIsWebVirtualDir: |
| 98 | return IisSymbolDefinitions.IIsWebVirtualDir; |
| 99 | |
| 100 | default: |
| 101 | throw new ArgumentOutOfRangeException(nameof(type)); |
| 102 | } |
| 103 | } |
| 104 | } |
| 105 | } |