/// <summary> /// The serialize with hash. /// </summary> /// <param name="person"> /// The person. /// </param> /// <param name="messages"> /// The messages. /// </param> /// <param name="filePath"> /// The file path. /// </param> /// <param name="xmlNamespaceResolver"> /// The xml namespace resolver. /// </param> /// <returns> /// The <see cref="bool"/>. /// </returns> public static bool SerializeWithHash( BasePersonTemplate person, IEnumerable messages, string filePath, IXmlNamespaceResolver xmlNamespaceResolver) { try { var fomsLogPrefix = Hl7Helper.FomsLogPrefix; FomsLogger.WriteLog( LogType.Local, "Сериализация пакета Hl7. " + person.BeginPacket.RetrieveShortInfo(), fomsLogPrefix, LogErrorType.None); FileSystemPhysical.RemoveFile(filePath); using (var writer = new Hl7Writer(filePath, person, xmlNamespaceResolver)) { writer.WriteMessages(messages); writer.FinalizeWrite(); } return(true); } catch (Exception exception) { FomsLogger.WriteError(exception, null); return(false); } }
public static void PreCacheSerializersStart(ProcessingTarget targets) { ThreadStart start = null; if (targets != ProcessingTarget.NoTargets) { if (start == null) { start = delegate { var fomsLogPrefix = FomsLogPrefix; FomsLogger.WriteLog( LogType.Local, string.Format("Предварительное кеширование классов сериализации: {0}", targets), fomsLogPrefix, LogErrorType.None); try { if ((targets & ProcessingTarget.XElement) == ProcessingTarget.XElement) { new XmlSerializer(typeof(XElement)); } if ((targets & (ProcessingTarget.NoTargets | ProcessingTarget.Ack)) == (ProcessingTarget.NoTargets | ProcessingTarget.Ack)) { new XmlSerializer(typeof(Ack)); } if ((targets & (ProcessingTarget.NoTargets | ProcessingTarget.RSP_ZK1)) == (ProcessingTarget.NoTargets | ProcessingTarget.RSP_ZK1)) { new XmlSerializer(typeof(RSP_ZK1)); } if ((targets & (ProcessingTarget.NoTargets | ProcessingTarget.RSP_ZK2)) == (ProcessingTarget.NoTargets | ProcessingTarget.RSP_ZK2)) { new XmlSerializer(typeof(RSP_ZK2)); } if ((targets & (ProcessingTarget.NoTargets | ProcessingTarget.RSP_ZK4)) == (ProcessingTarget.NoTargets | ProcessingTarget.RSP_ZK4)) { new XmlSerializer(typeof(RSP_ZK4)); } if ((targets & (ProcessingTarget.NoTargets | ProcessingTarget.RSP_ZK5)) == (ProcessingTarget.NoTargets | ProcessingTarget.RSP_ZK5)) { new XmlSerializer(typeof(RSP_ZK5)); } if ((targets & (ProcessingTarget.NoTargets | ProcessingTarget.ZPI_ZA1)) == (ProcessingTarget.NoTargets | ProcessingTarget.ZPI_ZA1)) { new XmlSerializer(typeof(ZPI_ZA1)); } if ((targets & (ProcessingTarget.NoTargets | ProcessingTarget.ZPI_ZA7)) == (ProcessingTarget.NoTargets | ProcessingTarget.ZPI_ZA7)) { new XmlSerializer(typeof(ZPI_ZA7)); } if ((targets & (ProcessingTarget.NoTargets | ProcessingTarget.ADT_A01)) == (ProcessingTarget.NoTargets | ProcessingTarget.ADT_A01)) { new XmlSerializer(typeof(ADT_A01)); } if ((targets & (ProcessingTarget.NoTargets | ProcessingTarget.ADT_A03)) == (ProcessingTarget.NoTargets | ProcessingTarget.ADT_A03)) { new XmlSerializer(typeof(ADT_A03)); } if ((targets & (ProcessingTarget.NoTargets | ProcessingTarget.ADT_A24)) == (ProcessingTarget.NoTargets | ProcessingTarget.ADT_A24)) { new XmlSerializer(typeof(ADT_A24)); } if ((targets & (ProcessingTarget.NoTargets | ProcessingTarget.ADT_A37)) == (ProcessingTarget.NoTargets | ProcessingTarget.ADT_A37)) { new XmlSerializer(typeof(ADT_A37)); } if ((targets & (ProcessingTarget.NoTargets | ProcessingTarget.QBP_ZP1)) == (ProcessingTarget.NoTargets | ProcessingTarget.QBP_ZP1)) { new XmlSerializer(typeof(QBP_ZP1)); } if ((targets & (ProcessingTarget.NoTargets | ProcessingTarget.QBP_ZP2)) == (ProcessingTarget.NoTargets | ProcessingTarget.QBP_ZP2)) { new XmlSerializer(typeof(QBP_ZP2)); } if ((targets & (ProcessingTarget.NoTargets | ProcessingTarget.QBP_ZP4)) == (ProcessingTarget.NoTargets | ProcessingTarget.QBP_ZP4)) { new XmlSerializer(typeof(QBP_ZP4)); } if ((targets & ProcessingTarget.BHS) == ProcessingTarget.BHS) { new XmlSerializer(typeof(BHS)); } if ((targets & ProcessingTarget.BTS) == ProcessingTarget.BTS) { new XmlSerializer(typeof(BTS)); } if ((targets & ProcessingTarget.PersonErp) == ProcessingTarget.PersonErp) { new XmlSerializer(typeof(PersonErp)); } if ((targets & ProcessingTarget.PersonCard) == ProcessingTarget.PersonCard) { new XmlSerializer(typeof(PersonCard)); } var prefix = FomsLogPrefix; FomsLogger.WriteLog( LogType.Local, string.Format("Завершено кеширование классов сериализации: {0}", targets), prefix, LogErrorType.None); } catch (Exception exception) { var str3 = FomsLogPrefix; FomsLogger.WriteError( LogType.Local, string.Format( "Исключение при кешировании классов сериализации: {0}", exception.Message), str3); throw; } finally { lock (preCacheThreads) { preCacheThreads.Remove(Thread.CurrentThread); } } }; } var item = new Thread(start); lock (preCacheThreads) { preCacheThreads.Add(item); } item.Start(); } }