/// <summary> /// write package async /// </summary> /// <typeparam name="T"></typeparam> /// <param name="kind_of_packing"></param> /// <param name="object_value"></param> /// <param name="crypto_key"></param> /// <returns></returns> public Task <XmlPackage> WritePackageAsync <T>(T object_value, MKindOfPacking kind_of_packing = MKindOfPacking.Encrypted, string crypto_key = null) { var _task = Task <XmlPackage> .Factory.StartNew(() => { return(WritePackage <T>(object_value, kind_of_packing, crypto_key)); }); return(_task); }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="reader"></param> /// <param name="exception"></param> /// <param name="command"></param> /// <param name="label"></param> /// <param name="message"></param> /// <param name="kind_of_packing"></param> /// <param name="crypto_key"></param> /// <param name="app_secific"></param> /// <param name="priority"></param> /// <returns></returns> public bool WritePacket( QAgency sender, QAgency reader, string exception, string command, string label, string message, MKindOfPacking kind_of_packing = MKindOfPacking.None, string crypto_key = "", int app_secific = 5, MessagePriority priority = MessagePriority.Normal ) { var _result = false; if (String.IsNullOrEmpty(message) == false) { using (QMessage _qmessage = new QMessage(sender) { Command = command, Package = Serialization.SNG.WritePackage <string>(message, kind_of_packing, crypto_key), UsePackage = true }) { _result = WritePacket(_qmessage, reader, exception, label, app_secific, priority); } } return(_result); }
/// <summary> /// DatParamets를 XmlPackage 표현식으로 변환 합니다. /// </summary> /// <returns></returns> public XmlPackage GetXmlPackage(MKindOfPacking kind_of_packing = MKindOfPacking.Encrypted) { foreach (PgDatParameter _p in this) { Type _type = typeof(object); if (_p.Value != null) { _type = _p.Value.GetType(); } if (_type.IsSealed == false || _type.BaseType == typeof(Array)) { _p.FieldType = _type.AssemblyQualifiedName; _p.Value = Serialization.SNG.ClassToString(_type, _p.Value); } else { _p.FieldType = _type.FullName; } } return(Serialization.SNG.WritePackage <PgDatParameters>(this, kind_of_packing)); }
//----------------------------------------------------------------------------------------------------------------------------- // //----------------------------------------------------------------------------------------------------------------------------- /// <summary> /// write package /// </summary> /// <typeparam name="T"></typeparam> /// <param name="kind_of_packing"></param> /// <param name="object_value"></param> /// <param name="crypto_key"></param> /// <returns></returns> public XmlPackage WritePackage <T>(T object_value, MKindOfPacking kind_of_packing = MKindOfPacking.Encrypted, string crypto_key = null) { var _xml_value = ObjectToString <T>(object_value); if (kind_of_packing.HasFlag(MKindOfPacking.Encrypted) == true) { if (Cryption.IsExistKey(crypto_key) == false) { crypto_key = Cryption.GetRandomKey(); } } if (kind_of_packing != MKindOfPacking.All) { if (kind_of_packing.HasFlag(MKindOfPacking.Encrypted) == true) { _xml_value = CryptHelper.SNG.PlainToChiperText(_xml_value, false, crypto_key); } if (kind_of_packing.HasFlag(MKindOfPacking.Compressed) == true) { _xml_value = CompressText(_xml_value); } } else { _xml_value = CryptHelper.SNG.PlainToChiperText(_xml_value, true, crypto_key); } return(new XmlPackage() { Packings = kind_of_packing, Value = _xml_value, CryptoKey = crypto_key }); }
//----------------------------------------------------------------------------------------------------------------------------- // //----------------------------------------------------------------------------------------------------------------------------- /// <summary> /// /// </summary> /// <param name="db_params"></param> /// <param name="kind_of_packing"></param> /// <returns></returns> public static XmlPackage ToXmlPackage(this PgDatParameters db_params, MKindOfPacking kind_of_packing = MKindOfPacking.Encrypted) { return(((PgDatParameters)db_params.Clone()).GetXmlPackage(kind_of_packing)); }
/// <summary> /// /// </summary> /// <param name="packings"></param> /// <param name="crypto_key"></param> /// <param name="value"></param> public XmlPackage(MKindOfPacking packings, string crypto_key, object value) : this(crypto_key, value) { Packings = packings; }