git_bsmd/nsw/Source/bsmd.hisnord/VisitId.cs

95 lines
2.5 KiB
C#

//
// Class: VisitId
// Current CLR: 4.0.30319.34209
// System: Microsoft Visual Studio 10.0
// Author: dani
// Created: 8/12/2015 8:27:03 AM
//
// Copyright (c) 2015 Informatikbüro Daniel Schick. All rights reserved.
using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
using log4net;
namespace bsmd.hisnord
{
[Serializable]
public class VisitId
{
private string _visitId = null;
private static ILog _log = LogManager.GetLogger(typeof(bsmd.hisnord.VisitId));
#region Construction
public VisitId(string visitId)
{
this._visitId = visitId;
}
public VisitId() { }
#endregion
#region Properties
[XmlAttribute]
public string ConveyanceCode { get; set; }
[XmlText]
public string Value { get; set; }
/// <summary>
/// Extract Guid aus ConveyanceCode
/// </summary>
public Guid? MessageCoreId
{
get
{
Guid? result = null;
if (this.ConveyanceCode != null)
{
int startIndex = this.ConveyanceCode.IndexOf('-');
if (startIndex > 0)
{
Guid tmpGuid;
if (Guid.TryParse(this.ConveyanceCode.Substring(startIndex + 1), out tmpGuid))
result = tmpGuid;
else if (Guid.TryParse(this.ConveyanceCode, out tmpGuid))
result = tmpGuid;
}
}
return result;
}
}
#endregion
#region Deserialization
public static VisitId ReadVisitId(string filename)
{
VisitId aVisitId = null;
try
{
XmlSerializer serializer = new XmlSerializer(typeof(bsmd.hisnord.VisitId));
using (FileStream fs = new FileStream(filename, FileMode.Open))
{
aVisitId = (VisitId)serializer.Deserialize(fs);
}
}
catch (Exception ex)
{
_log.ErrorFormat("Exception occurred during deserialization: {0}", ex.Message);
}
return aVisitId;
}
#endregion
}
}