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(Dictionary basicparameters, Dictionary extraparameters) { if (basicparameters != null && basicparameters.Count() > 0) { foreach (KeyValuePair item in basicparameters) { this.Add(item.Key, item.Value); } } if (extraparameters != null && extraparameters.Count() > 0) { foreach (KeyValuePair item in extraparameters) { this.Add(item.Key, item.Value); } } } #endregion Constructors #region Add public method /// /// Érték hozzáadása az osztályhoz. Ha nevű /// tulajdonság létezik, akkor az megkapja a /// értékét, ha nem létezik, akkor a 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. /// /// A tulajdonságra vagy paraméterre jellemző elnevezés. /// A tulajdonság vagy paraméter értéke. /// /// Ha key üres vagy null, akkor nem történik semmi. /// 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 } }