OneMessageParameters.cs
7.68 KB
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Vrh.XmlProcessing;
namespace Vrh.OneMessage
{
/// <summary>
/// OneMessage üzenet kézbesítő komponens számára
/// szükséges paramétereket tartalmazza.
/// !FIGYELEM: A név szerinti tulajdonságokat, nem a Parameters tulajdonságban kell átadni.
/// </summary>
/// <remarks>
/// A Parameters gyűjtemény a OneMessage paraméter XML fájlban paraméterként
/// megadott hivatkozások feloldására való.
/// </remarks>
public class OneMessageParameters
{
#region PROPERTIES
/// <summary>
/// OneMessage paraméterező XML fájl helyét meghatározó kapcsolati sztring.
/// </summary>
public string XmlConnectionString { get; set; }
/// <summary>
/// A relatív ("~") útvonal feloldásának mappája.
/// Példányosítás után külön kell neki értéket adni.
/// </summary>
public string AppPath { get; set; }
/// <summary>
/// A paraméterező fájból melyik üzenetleíró alapján kell a kézbesítést megvalósítani.
/// </summary>
public string MessageId { get; set; }
/// <summary>
/// A paraméterező fájlban, ezt a nyelvű üzenetleírót kell alkalmazni.
/// Ha üres, akkor az XmlParser nyelvi beállítása határozza meg.
/// </summary>
public string LCID { get; set; }
/// <summary>
/// A paraméterező fájlban megadott továbbítás leírók közül melyiket használja
/// a kézbesítés végrehajtásához.
/// </summary>
public string Delivery { get; set; }
/// <summary>
/// A paraméterező fájlban megadott címzettek felülírása.
/// Ha ez a paraméter értéket tartalmaz, akkor ezen címzettek részére történik a kézbesítés.
/// </summary>
public string SendTo { get; set; }
/// <summary>
/// Kinek a nevében kell feladni az üzenetet.
/// A paraméterező fájlban megadott feladók felülírása.
/// Ha ebben van érték, akkor ez(ek) lesz(nek) a feladó(k).
/// </summary>
public string SendAs { get; set; }
/// <summary>
/// Az e-mail serverre mutató kapcsolat leríró.
/// A paraméterező fájlban megadott kapcsolat leíró felülírása.
/// Ha ebben van érték, akkor ez lesz a kapcsolat leíró.
/// </summary>
public string ConnectionString{ get; set; }
/// <summary>
/// Másolatot kapó címzettek vesszővel (",") elválasztott listája.
/// A paraméterező fájlban megadott másolatot kapók felülírása.
/// Ha ebben van érték, akkor ezek a címzettek kapnak másolatot.
/// </summary>
public string SendCopyTo { get; set; }
/// <summary>
/// A paraméterező fájlban megadott csatolmányok felülírása.
/// A csatolmányokat vesszővel (",") kell elválasztani egymástól.
/// Ha ez a gyűjtemény tartalmaz csatolmányokat, akkor ezen csatolmányok lesznek a kézbesítendő
/// üzenetben.
/// </summary>
public string Attachments { get; set; }
/// <summary>
/// A paraméterező fájlban megadott üzenet tárgyának felülírása.
/// Ha ez a paraméter értéket tartalmaz, akkor ez lesz az üzenet tárgya.
/// </summary>
public string Subject { get; set; }
/// <summary>
/// A paraméterező fájlban megadott üzenet tartalom felülírása.
/// Ha ez a paraméter értéket tartalmaz, akkor ez lesz az üzenet tartalma.
/// </summary>
public string MessageBody { get; set; }
/// <summary>
/// Egyéb paraméterek az XmlParser számára.
/// </summary>
public Dictionary<string, string> Parameters = new Dictionary<string, string>();
#endregion PROPERTIES
#region Constructors
/// <summary>
/// Alapértelmezett kontruktor.
/// </summary>
public OneMessageParameters() { }
/// <summary>
/// Példány létrehozása a két szótár alapján.
/// </summary>
/// <param name="basicparameters">Alap paraméterek szótára.</param>
/// <param name="extraparameters">Egyéb paramáterek szótára.</param>
/// <exception cref="System.ApplicationException">
/// Ha
/// </exception>
public OneMessageParameters(Dictionary<string,string> basicparameters, Dictionary<string, string> extraparameters)
{
if (basicparameters != null && basicparameters.Count() > 0)
{
foreach (KeyValuePair<string, string> item in basicparameters)
{
this.Add(item.Key, item.Value);
}
}
if (extraparameters != null && extraparameters.Count() > 0)
{
foreach (KeyValuePair<string, string> item in extraparameters)
{
this.Add(item.Key, item.Value);
}
}
}
#endregion Constructors
#region Add public method
/// <summary>
/// Érték hozzáadása az osztályhoz. Ha <paramref name="key"/> nevű
/// tulajdonság létezik, akkor az megkapja a <paramref name="value"/>
/// értékét, ha nem létezik, akkor a <paramref name="key"/> névvel együtt
/// bekerül a Parameters gyűjteménybe, mely egy string,string típusú Dictionary.
/// Már létező paraméter vagy korábban értéket kapott tulajdonság értéke felülíródik.
/// </summary>
/// <param name="key">A tulajdonságra vagy paraméterre jellemző elnevezés.</param>
/// <param name="value">A tulajdonság vagy paraméter értéke.</param>
/// <remarks>
/// Ha key üres vagy null, akkor nem történik semmi.
/// </remarks>
public void Add(string key, string value)
{
if (string.IsNullOrWhiteSpace(key)) return;
switch (key)
{
case Constants.UParam.XML:
this.XmlConnectionString = value;
break;
case Constants.UParam.LCID:
this.LCID = value;
break;
case Constants.UParam.MSGID:
this.MessageId= value;
break;
case Constants.UParam.DELIVERY:
this.Delivery = value;
break;
case Constants.UParam.SENDAS:
this.SendAs= value;
break;
case Constants.UParam.CONNSTR:
this.ConnectionString= value;
break;
case Constants.UParam.SENDCOPYTO:
this.SendCopyTo = value;
break;
case Constants.UParam.SENDTO:
this.SendTo= value;
break;
case Constants.UParam.SUBJECT:
this.Subject= value;
break;
case Constants.UParam.MSGBODY:
this.MessageBody = value;
break;
case Constants.UParam.ATTACHMENTS:
this.Attachments= value;
break;
default:
if (Parameters.ContainsKey(key))
{
this.Parameters[key] = value;
}
else
{
Parameters.Add(key, value);
}
break;
}
}
#endregion Add public method
}
}