1 <?xml version="1.0" encoding="utf-8" ?>
2 <configuration>
3 <configSections>
4 <section name="PublishGeneralMessageRQTransformerConfiguration" type="ConsoleApplication5.PublishGeneralMessageRQTransformerEventSection, ConsoleApplication5" />
5 </configSections>
6 <PublishGeneralMessageRQTransformerConfiguration>
7 <eventItems>
8 <add EventCode="EventA" ActionCode="ActionCodeA" Category="CategoryA" IsRetrieveGUIData="false" />
9 <add EventCode="EventB" ActionCode="ActionCodeB" Category="CategoryB" IsRetrieveGUIData="true" />
10 <add EventCode="EventC" ActionCode="ActionCodeC" Category="CategoryC" IsRetrieveGUIData="true" />
11 <add EventCode="EventD" ActionCode="ActionCodeD" Category="CategoryD" IsRetrieveGUIData="true" />
12 </eventItems>
13 </PublishGeneralMessageRQTransformerConfiguration>
14 </configuration>
2 <configuration>
3 <configSections>
4 <section name="PublishGeneralMessageRQTransformerConfiguration" type="ConsoleApplication5.PublishGeneralMessageRQTransformerEventSection, ConsoleApplication5" />
5 </configSections>
6 <PublishGeneralMessageRQTransformerConfiguration>
7 <eventItems>
8 <add EventCode="EventA" ActionCode="ActionCodeA" Category="CategoryA" IsRetrieveGUIData="false" />
9 <add EventCode="EventB" ActionCode="ActionCodeB" Category="CategoryB" IsRetrieveGUIData="true" />
10 <add EventCode="EventC" ActionCode="ActionCodeC" Category="CategoryC" IsRetrieveGUIData="true" />
11 <add EventCode="EventD" ActionCode="ActionCodeD" Category="CategoryD" IsRetrieveGUIData="true" />
12 </eventItems>
13 </PublishGeneralMessageRQTransformerConfiguration>
14 </configuration>
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Configuration;
6
7 namespace ConsoleApplication5
8 {
9 class Program
10 {
11 static void Main(string[] args)
12 {
13 // var element = PublishGeneralMessageRQTransformerConfigHelper.GetElement("EventA");
14
15 foreach (EventConfigElement element in PublishGeneralMessageRQTransformerConfigHelper.GetElements())
16 {
17 Console.WriteLine(element.EventCode);
18 Console.WriteLine(element.ActionCode);
19 Console.WriteLine(element.Category);
20 Console.WriteLine(element.IsRetrieveGUIData);
21 }
22
23 Console.ReadKey();
24 }
25
26 public class PublishGeneralMessageRQTransformerConfigHelper
27 {
28 public static bool ContainsEvent(string eventCode)
29 {
30 var element = GetElement(eventCode);
31
32 return element != null;
33 }
34
35 public static EventConfigElement GetElement(string eventCode)
36 {
37 var elements = GetConfig().EventElements;
38
39 if (elements != null)
40 {
41 foreach (EventConfigElement aElement in elements)
42 {
43 if (aElement.EventCode == eventCode) return aElement;
44 }
45 }
46
47 return null;
48 }
49
50 public static EventConfigElements GetElements()
51 {
52 return GetConfig().EventElements;
53 }
54
55 private static PublishGeneralMessageRQTransformerEventSection GetConfig()
56 {
57 return ConfigurationManager.GetSection(PublishGeneralMessageRQTransformerEventSection.EventSection) as PublishGeneralMessageRQTransformerEventSection;
58 }
59 }
60 }
61
62 public class PublishGeneralMessageRQTransformerEventSection : ConfigurationSection
63 {
64 public const string EventSection = "PublishGeneralMessageRQTransformerConfiguration";
65 private const string EventConfigElementsKey = "eventItems";
66
67 [ConfigurationProperty(EventConfigElementsKey, IsDefaultCollection = true, IsRequired = true)]
68 public EventConfigElements EventElements
69 {
70 get
71 {
72 return (EventConfigElements)this[EventConfigElementsKey];
73 }
74 set
75 {
76 base[EventConfigElementsKey] = value;
77 }
78 }
79 }
80
81 public class EventConfigElements : ConfigurationElementCollection
82 {
83 public EventConfigElement this[int index]
84 {
85 get
86 {
87 return base.BaseGet(index) as EventConfigElement;
88 }
89 set
90 {
91 if (base.BaseGet(index) != null)
92 {
93 base.BaseRemoveAt(index);
94 }
95 this.BaseAdd(index, value);
96 }
97 }
98
99 protected override ConfigurationElement CreateNewElement()
100 {
101 return new EventConfigElement();
102 }
103
104 protected override object GetElementKey(ConfigurationElement element)
105 {
106 return ((EventConfigElement)element).ElementInformation;
107 }
108 }
109
110 public class EventConfigElement : ConfigurationElement
111 {
112 private const string EventCodeName = "EventCode";
113 private const string CategoryName = "Category";
114 private const string ActionCodeName = "ActionCode";
115 private const string IsRetrieveGUIDataName = "IsRetrieveGUIData";
116
117 [ConfigurationProperty(EventConfigElement.EventCodeName, IsRequired = true)]
118 public string EventCode
119 {
120 get
121 {
122 return (string)this[EventCodeName];
123 }
124 set
125 {
126 base[EventCodeName] = value;
127 }
128 }
129
130 [ConfigurationProperty(EventConfigElement.CategoryName, IsRequired = true)]
131 public string Category
132 {
133 get
134 {
135 return (string)this[CategoryName];
136 }
137 set
138 {
139 base[CategoryName] = value;
140 }
141 }
142
143 [ConfigurationProperty(EventConfigElement.ActionCodeName, IsRequired = true)]
144 public string ActionCode
145 {
146 get
147 {
148 return (string)this[ActionCodeName];
149 }
150 set
151 {
152 base[ActionCodeName] = value;
153 }
154 }
155
156 [ConfigurationProperty(EventConfigElement.IsRetrieveGUIDataName, IsRequired = false)]
157 public bool IsRetrieveGUIData
158 {
159 get
160 {
161 return (bool)this[IsRetrieveGUIDataName];
162 }
163 set
164 {
165 base[IsRetrieveGUIDataName] = value;
166 }
167 }
168 }
169 }
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Configuration;
6
7 namespace ConsoleApplication5
8 {
9 class Program
10 {
11 static void Main(string[] args)
12 {
13 // var element = PublishGeneralMessageRQTransformerConfigHelper.GetElement("EventA");
14
15 foreach (EventConfigElement element in PublishGeneralMessageRQTransformerConfigHelper.GetElements())
16 {
17 Console.WriteLine(element.EventCode);
18 Console.WriteLine(element.ActionCode);
19 Console.WriteLine(element.Category);
20 Console.WriteLine(element.IsRetrieveGUIData);
21 }
22
23 Console.ReadKey();
24 }
25
26 public class PublishGeneralMessageRQTransformerConfigHelper
27 {
28 public static bool ContainsEvent(string eventCode)
29 {
30 var element = GetElement(eventCode);
31
32 return element != null;
33 }
34
35 public static EventConfigElement GetElement(string eventCode)
36 {
37 var elements = GetConfig().EventElements;
38
39 if (elements != null)
40 {
41 foreach (EventConfigElement aElement in elements)
42 {
43 if (aElement.EventCode == eventCode) return aElement;
44 }
45 }
46
47 return null;
48 }
49
50 public static EventConfigElements GetElements()
51 {
52 return GetConfig().EventElements;
53 }
54
55 private static PublishGeneralMessageRQTransformerEventSection GetConfig()
56 {
57 return ConfigurationManager.GetSection(PublishGeneralMessageRQTransformerEventSection.EventSection) as PublishGeneralMessageRQTransformerEventSection;
58 }
59 }
60 }
61
62 public class PublishGeneralMessageRQTransformerEventSection : ConfigurationSection
63 {
64 public const string EventSection = "PublishGeneralMessageRQTransformerConfiguration";
65 private const string EventConfigElementsKey = "eventItems";
66
67 [ConfigurationProperty(EventConfigElementsKey, IsDefaultCollection = true, IsRequired = true)]
68 public EventConfigElements EventElements
69 {
70 get
71 {
72 return (EventConfigElements)this[EventConfigElementsKey];
73 }
74 set
75 {
76 base[EventConfigElementsKey] = value;
77 }
78 }
79 }
80
81 public class EventConfigElements : ConfigurationElementCollection
82 {
83 public EventConfigElement this[int index]
84 {
85 get
86 {
87 return base.BaseGet(index) as EventConfigElement;
88 }
89 set
90 {
91 if (base.BaseGet(index) != null)
92 {
93 base.BaseRemoveAt(index);
94 }
95 this.BaseAdd(index, value);
96 }
97 }
98
99 protected override ConfigurationElement CreateNewElement()
100 {
101 return new EventConfigElement();
102 }
103
104 protected override object GetElementKey(ConfigurationElement element)
105 {
106 return ((EventConfigElement)element).ElementInformation;
107 }
108 }
109
110 public class EventConfigElement : ConfigurationElement
111 {
112 private const string EventCodeName = "EventCode";
113 private const string CategoryName = "Category";
114 private const string ActionCodeName = "ActionCode";
115 private const string IsRetrieveGUIDataName = "IsRetrieveGUIData";
116
117 [ConfigurationProperty(EventConfigElement.EventCodeName, IsRequired = true)]
118 public string EventCode
119 {
120 get
121 {
122 return (string)this[EventCodeName];
123 }
124 set
125 {
126 base[EventCodeName] = value;
127 }
128 }
129
130 [ConfigurationProperty(EventConfigElement.CategoryName, IsRequired = true)]
131 public string Category
132 {
133 get
134 {
135 return (string)this[CategoryName];
136 }
137 set
138 {
139 base[CategoryName] = value;
140 }
141 }
142
143 [ConfigurationProperty(EventConfigElement.ActionCodeName, IsRequired = true)]
144 public string ActionCode
145 {
146 get
147 {
148 return (string)this[ActionCodeName];
149 }
150 set
151 {
152 base[ActionCodeName] = value;
153 }
154 }
155
156 [ConfigurationProperty(EventConfigElement.IsRetrieveGUIDataName, IsRequired = false)]
157 public bool IsRetrieveGUIData
158 {
159 get
160 {
161 return (bool)this[IsRetrieveGUIDataName];
162 }
163 set
164 {
165 base[IsRetrieveGUIDataName] = value;
166 }
167 }
168 }
169 }