public void CommonLogEntry_serialize_test()
        {
            var entry = new NDSCommLogEntry();

            entry.ErrorCode             = "ES05";
            entry.ErrorDescription      = "Response is invalid. Error Code: ES05";
            entry.OriginalMessageAction = "A05FE00000000A00A091300000000A00A051E00000000A00A04CD00000000A00A04CC00000000A00A045E00000000A00YA6B";
            entry.UnformattedMessage    = "0002M003A0100060006201502210545195A09OES058744341E17210796";

            SubscriberMessageBase request = new SubscriberMessageBase();
            var message = request.Deserialize(entry.OriginalMessageAction, "", false);

            entry.Message = (CamcMessageBase)message;

            List <Type> knownTypes = new List <Type>();

            knownTypes.AddRange(SubscriberActionFactory.KnownActionTypes);
            knownTypes.AddRange(SubscriberResponseActionFactory.KnownActionTypes);
            knownTypes.AddRange(AddressingResponseActionFactory.KnownActionTypes);

            var output = SerializationUtilities <NDSCommLogEntry> .DataContract.Serialize(entry, knownTypes);
        }
        public void WriteCommonLogEntryForReceive(string logText, string messageAction)
        {
            var commLogEntry = new NDSCommLogEntry();

            commLogEntry.OriginalMessageAction = messageAction;
            commLogEntry.UnformattedMessage    = logText;

            const int startPosition = 37;
            int       endPosition   = logText.Length - 37 - 16;
            var       actions       = logText.Substring(startPosition, endPosition);
            var       errorCodeTemp = GetErrorCode(actions);

            if (errorCodeTemp != "") //error found
            {
                var errorCode = errorCodeTemp;

                XmlDocument xErrorsDoc = new XmlDocument();
                xErrorsDoc.Load(FileUtilities.GetFullPath(@"D:\\Temp\\camc_es05.xml"));

                var errorDescription = XmlUtilities.SafeSelectText(xErrorsDoc, "Errors/Error[Code = '" + errorCode + "']/Message");
                commLogEntry.ErrorCode        = errorCode;
                commLogEntry.ErrorDescription = errorDescription;

                var errorMessageNode = xErrorsDoc.CreateNode(XmlNodeType.Element, "ErrorMessage", string.Empty);
                xErrorsDoc.FirstChild.AppendChild(errorMessageNode);

                var errorMessageErrorCodeNode = xErrorsDoc.CreateNode(XmlNodeType.Element, "ErrorCode", string.Empty);
                errorMessageErrorCodeNode.InnerText = errorCode;
                errorMessageNode.AppendChild(errorMessageErrorCodeNode);

                var errorMessageErrorDescriptionNode = xErrorsDoc.CreateNode(XmlNodeType.Element, "ErrorDescription", string.Empty);
                errorMessageErrorDescriptionNode.InnerText = errorDescription;
                errorMessageNode.AppendChild(errorMessageErrorDescriptionNode);

                xErrorsDoc.Save(@"D:\\Temp\\camc_es05_2.xml");
            }
        }