using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Vrh.XmlProcessing; namespace Vrh.OneMessage { /// /// 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. /// /// /// A Parameters gyűjtemény a OneMessage paraméter XML fájlban paraméterként /// megadott hivatkozások feloldására való. /// public class OneMessageParameters { #region PROPERTIES /// /// OneMessage paraméterező XML fájl helyét meghatározó kapcsolati sztring. /// public string XmlConnectionString { get; set; } /// /// A relatív ("~") útvonal feloldásának mappája. /// Példányosítás után külön kell neki értéket adni. /// public string AppPath { get; set; } /// /// A paraméterező fájból melyik üzenetleíró alapján kell a kézbesítést megvalósítani. /// public string MessageId { get; set; } /// /// 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. /// public string LCID { get; set; } /// /// 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. /// public string Delivery { get; set; } /// /// 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. /// public string SendTo { get; set; } /// /// 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). /// public string SendAs { get; set; } /// /// 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ó. /// public string ConnectionString{ get; set; } /// /// 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. /// public string SendCopyTo { get; set; } /// /// 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. /// public string Attachments { get; set; } /// /// 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. /// public string Subject { get; set; } /// /// 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. /// public string MessageBody { get; set; } /// /// Egyéb paraméterek az XmlParser számára. /// public Dictionary Parameters = new Dictionary(); #endregion PROPERTIES #region Constructors /// /// Alapértelmezett kontruktor. /// public OneMessageParameters() { } /// /// Példány létrehozása a két szótár alapján. /// /// /// Alap paraméterek szótára. /// Egyéb paramáterek szótára. /// /// Ha /// public OneMessageParameters(List> firstlist, List> secondlist=null, string apppath="") { this.AppPath = apppath; if (string.IsNullOrEmpty(this.AppPath)) { this.AppPath = ""; } var EMPTYLIST = new List>(); 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 } }