OneMessageParameters.cs
6.22 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
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="apppath"></param>
/// <param name="firstlist">Alap paraméterek szótára.</param>
/// <param name="secondlist">Egyéb paramáterek szótára.</param>
/// <exception cref="System.ApplicationException">
/// Ha
/// </exception>
public OneMessageParameters(List<KeyValuePair<string,string>> firstlist, List<KeyValuePair<string, string>> secondlist=null, string apppath="")
{
this.AppPath = apppath; if (string.IsNullOrEmpty(this.AppPath)) { this.AppPath = ""; }
var EMPTYLIST = new List<KeyValuePair<string, string>>();
var allparameters = (firstlist ?? EMPTYLIST).Concat(secondlist ?? EMPTYLIST);
foreach (var item in allparameters)
{
if (string.IsNullOrWhiteSpace(item.Key)) continue;
var value = item.Value;
switch (item.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(item.Key)) { this.Parameters[item.Key] = value; } else { Parameters.Add(item.Key, value); } break;
}
}
}
#endregion Constructors
}
}