示例#1
0
 /// <inheritdoc />
 public override string ToString()
 {
     if (SequenceNumber != null)
     {
         return(SequenceNumber.ToString());
     }
     else
     {
         return(EventStartCursorTimeUtc.ToString());
     }
 }
示例#2
0
        /// <summary>
        /// Serialize the current instance and write the result into a specified XML writer.
        /// </summary>
        /// <param name="writer">The XML writer into which to write the serialized instance.</param>
        public void WriteXml(XmlWriter writer)
        {
            writer.WriteStartElement(GetType().Name);

            writer.WriteAttributeString("ContentType", ContentType.ToString());
            writer.WriteAttributeString("SequenceNumber", SequenceNumber.ToString());

            writer.WriteStartElement("Body");
            Body.WriteXml(writer);
            writer.WriteEndElement();

            writer.WriteEndElement();
        }
示例#3
0
        public override string ToString()
        {
            string header = Length.ToString().PadLeft(4, '0');

            header += Mid.ToString().PadLeft(4, '0');
            header += (Revision > 0) ? Revision.ToString().PadLeft(3, '0') : "   ";
            header += NoAckFlag ? "1" : " ";
            header += (StationId != null) ? StationId.ToString().PadLeft(2, '0') : string.Empty.PadLeft(2, ' ');
            header += (SpindleId != null) ? SpindleId.ToString().PadLeft(2, '0') : string.Empty.PadLeft(2, ' ');
            header += (SequenceNumber > 0) ? SequenceNumber.ToString().PadLeft(2, '0') : string.Empty.PadLeft(2, ' ');
            header += NumberOfMessages.ToString().PadLeft(1, ' ');
            header += MessageNumber.ToString().PadLeft(1, ' ');
            return(header);
        }
        public void TestSequenceNumbers()
        {
            var def = new SequenceNumber();
            var small = new SequenceNumber(1, "B");
            var big = new SequenceNumber(1000, "A");
            var bigger = new SequenceNumber(1000, "B");

            Assert.IsTrue(bigger > big);
            Assert.IsTrue(big < bigger);
            Assert.IsTrue(bigger > small);
            Assert.IsTrue(small < bigger);
            Assert.IsTrue(bigger > def);
            Assert.IsTrue(def < bigger);

            Assert.IsTrue(big > small);
            Assert.IsTrue(small < big);
            Assert.IsTrue(big > def);
            Assert.IsTrue(def < big);

            Assert.IsTrue(small > def);
            Assert.IsTrue(def < small);

            Assert.AreEqual("[1:B]", small.ToString(), "Should have a neat string representation");
            Assert.AreEqual(small, new SequenceNumber("[1:B]"), "Should be able to parse string representation");

            Assert.AreNotEqual(new SequenceNumber(), null);
            Assert.AreNotEqual(null, new SequenceNumber());
            Assert.AreNotEqual(new SequenceNumber(), new Object());
            Assert.AreNotEqual(new Object(), new SequenceNumber());

            Assert.AreEqual(small.GetHashCode(), new SequenceNumber(1, "B").GetHashCode());

            Assert.IsTrue(small != big);

            Assert.IsTrue(small <= big);
            Assert.IsTrue(small <= new SequenceNumber(1, "B"));
            Assert.IsFalse(big <= small);

            Assert.IsTrue(big >= small);
            Assert.IsTrue(small >= new SequenceNumber(1, "B"));
            Assert.IsFalse(small >= big);
        }
示例#5
0
        /// <summary>
        /// Construct string representation of the header file
        /// </summary>
        /// <returns>
        /// Returns the string header
        /// </returns>
        public string BuildFileHeader()
        {
            StringBuilder result = new StringBuilder();

            result.Append(AmexConstants.HeaderIdentifier);
            result.Append(AmexConstants.Delimiter);
            result.Append(Date.ToString("yyyy-MM-dd"));
            result.Append(AmexConstants.Delimiter);
            result.Append(SequenceNumber.ToString("D10"));
            result.Append(AmexConstants.Delimiter);
            result.Append(AmexConstants.FromTo);
            result.Append(AmexConstants.Delimiter);
            result.Append(AmexConstants.FileType);
            result.Append(AmexConstants.Delimiter);
            result.Append(FileDescription);
            result.Append(AmexConstants.Delimiter);
            result.Append(AmexConstants.PartnerId);
            result.Append(AmexConstants.Delimiter);
            return(result.ToString());
        }
示例#6
0
        public override string ToString()
        {
            string result = "";

            result += "Сигнатура:" + Signature + "\n";
            result += "Смещение массива данных:" + UsaOffset.ToString() + "\n";
            result += "Размер в словах номера последовательности обновления:" + UsaCount.ToString() + "\n";
            result += "Номер последовательности файла транзакций:" + LSN.ToString() + "\n";
            result += "Номер последовательности:" + SequenceNumber.ToString() + "\n";
            result += "Счетчик жестких ссылок:" + LinkCount.ToString() + "\n";
            result += "Смещение первого атрибута:" + AttrsOffset.ToString() + "\n";
            result += "Флаги записи:" + Flags.ToString() + "\n";
            result += "Реальный размер файловой записи в байтах :" + BytesInUse.ToString() + "\n";
            result += "Выделенный размер файловой записи:" + BytesAllocated.ToString() + "\n";
            result += "Ссылка на базовую файловую запись:" + BaseMFTRecord.ToString() + "\n";
            result += "Идентификатор следующего атрибута:" + NextAttrInstance.ToString() + "\n";
            result += "Индекс данной файловой записи:" + MFTRecordNumber.ToString() + "\n";

            return(result);
        }
示例#7
0
        /// <summary cref="Packet.ToString(StringOutputType)" />
        public override string ToString(StringOutputType outputFormat)
        {
            var    buffer      = new StringBuilder();
            string color       = "";
            string colorEscape = "";

            if (outputFormat == StringOutputType.Colored || outputFormat == StringOutputType.VerboseColored)
            {
                color       = Color;
                colorEscape = AnsiEscapeSequences.Reset;
            }

            if (outputFormat == StringOutputType.Normal || outputFormat == StringOutputType.Colored)
            {
                // build flagstring
                string flags = "{";
                if (Urg)
                {
                    flags += "urg[0x" + System.Convert.ToString(UrgentPointer, 16) + "]|";
                }
                if (Ack)
                {
                    flags += "ack[" + AcknowledgmentNumber + " (0x" + System.Convert.ToString(AcknowledgmentNumber, 16) + ")]|";
                }
                if (Psh)
                {
                    flags += "psh|";
                }
                if (Rst)
                {
                    flags += "rst|";
                }
                if (Syn)
                {
                    flags += "syn[0x" + System.Convert.ToString(SequenceNumber, 16) + "," + SequenceNumber + "]|";
                }
                flags  = flags.TrimEnd('|');
                flags += "}";

                // build the output string
                buffer.AppendFormat("{0}[TCPPacket: SourcePort={2}, DestinationPort={3}, Flags={4}]{1}",
                                    color,
                                    colorEscape,
                                    SourcePort,
                                    DestinationPort,
                                    flags);
            }

            if (outputFormat == StringOutputType.Verbose || outputFormat == StringOutputType.VerboseColored)
            {
                // collect the properties and their value
                Dictionary <string, string> properties = new Dictionary <string, string>();
                properties.Add("source port", SourcePort.ToString());
                properties.Add("destination port", DestinationPort.ToString());
                properties.Add("sequence number", SequenceNumber.ToString() + " (0x" + SequenceNumber.ToString("x") + ")");
                properties.Add("acknowledgement number", AcknowledgmentNumber.ToString() + " (0x" + AcknowledgmentNumber.ToString("x") + ")");
                // TODO: Implement a HeaderLength property for TCPPacket
                //properties.Add("header length", HeaderLength.ToString());
                properties.Add("flags", "(0x" + AllFlags.ToString("x") + ")");
                string flags = Convert.ToString(AllFlags, 2).PadLeft(8, '0');
                properties.Add("", flags[0] + "... .... = [" + flags[0] + "] congestion window reduced");
                properties.Add(" ", "." + flags[1] + ".. .... = [" + flags[1] + "] ECN - echo");
                properties.Add("  ", ".." + flags[2] + ". .... = [" + flags[2] + "] urgent");
                properties.Add("   ", "..." + flags[3] + " .... = [" + flags[3] + "] acknowledgement");
                properties.Add("    ", ".... " + flags[4] + "... = [" + flags[4] + "] push");
                properties.Add("     ", ".... ." + flags[5] + ".. = [" + flags[5] + "] reset");
                properties.Add("      ", ".... .." + flags[6] + ". = [" + flags[6] + "] syn");
                properties.Add("       ", ".... ..." + flags[7] + " = [" + flags[7] + "] fin");
                properties.Add("window size", WindowSize.ToString());
                properties.Add("checksum", "0x" + Checksum.ToString() + " [" + (ValidChecksum ? "valid" : "invalid") + "]");
                properties.Add("options", "0x" + BitConverter.ToString(Options).Replace("-", "").PadLeft(12, '0'));
                var parsedOptions = OptionsCollection;
                if (parsedOptions != null)
                {
                    for (int i = 0; i < parsedOptions.Count; i++)
                    {
                        properties.Add("option" + (i + 1).ToString(), parsedOptions[i].ToString());
                    }
                }

                // calculate the padding needed to right-justify the property names
                int padLength = Utils.RandomUtils.LongestStringLength(new List <string>(properties.Keys));

                // build the output string
                buffer.AppendLine("TCP:  ******* TCP - \"Transmission Control Protocol\" - offset=? length=" + TotalPacketLength);
                buffer.AppendLine("TCP:");
                foreach (var property in properties)
                {
                    if (property.Key.Trim() != "")
                    {
                        buffer.AppendLine("TCP: " + property.Key.PadLeft(padLength) + " = " + property.Value);
                    }
                    else
                    {
                        buffer.AppendLine("TCP: " + property.Key.PadLeft(padLength) + "   " + property.Value);
                    }
                }
                buffer.AppendLine("TCP:");
            }

            // append the base class output
            buffer.Append(base.ToString(outputFormat));

            return(buffer.ToString());
        }
示例#8
0
 public override string Description()
 {
     return("[" + SourcePort.ToString() + "] -> [" + DestPort.ToString() + "]" + " Seq: " + SequenceNumber.ToString() + " Ack: " + AcknowledgementNumber.ToString() + " WindowSize: " + WindowSize.ToString());
 }
        public void valid(string number, string expected)
        {
            var sn = new SequenceNumber(number);

            Assert.Equal(expected, sn.ToString());
        }
示例#10
0
 public ReceiveFullMessage(SequenceNumber uid, string attachmentDirectory)
 {
     this._uid = uid;
     this._attachmentDirectory = Path.Combine(attachmentDirectory, MailClient.MessageFolderPrefix + uid.ToString());
 }
 public string CreateData(byte sequenceNumber, string terminationCode)
 {
     string[] sTemp = { RecordType, SequenceNumber.ToString(), TerminationCode };
     return(string.Concat(string.Join(RecordDelimiter.ToString(), sTemp), DeviceHelper.CR));
 }
示例#12
0
        private void SetPackageLineItems(ProcessShipmentRequest request)
        {
            request.RequestedShipment.RequestedPackageLineItems = new RequestedPackageLineItem[1];


            if (CurPackage != null)
            {
                Package pkg = CurPackage;
                request.RequestedShipment.RequestedPackageLineItems[0] = new RequestedPackageLineItem();
                request.RequestedShipment.RequestedPackageLineItems[0].SequenceNumber = SequenceNumber.ToString();

                // Package weight information
                request.RequestedShipment.RequestedPackageLineItems[0].Weight       = new Weight();
                request.RequestedShipment.RequestedPackageLineItems[0].Weight.Value = pkg.Weight;
                request.RequestedShipment.RequestedPackageLineItems[0].Weight.Units = pkg.ShipWeightUnit == WeightUnit.KG ? WeightUnits.KG : WeightUnits.LB;
                // package dimensions
                request.RequestedShipment.RequestedPackageLineItems[0].Dimensions        = new Dimensions();
                request.RequestedShipment.RequestedPackageLineItems[0].Dimensions.Length = pkg.Length.ToString();
                request.RequestedShipment.RequestedPackageLineItems[0].Dimensions.Width  = pkg.Width.ToString();
                request.RequestedShipment.RequestedPackageLineItems[0].Dimensions.Height = pkg.Height.ToString();
                request.RequestedShipment.RequestedPackageLineItems[0].Dimensions.Units  = pkg.ShipLinearUnit == LinearUnit.CM ? LinearUnits.CM : LinearUnits.IN;
                // insured value
                request.RequestedShipment.RequestedPackageLineItems[0].InsuredValue          = new Money();
                request.RequestedShipment.RequestedPackageLineItems[0].InsuredValue.Amount   = 0;
                request.RequestedShipment.RequestedPackageLineItems[0].InsuredValue.Currency = pkg.Currency;
                // Reference details
                request.RequestedShipment.RequestedPackageLineItems[0].CustomerReferences = new CustomerReference[1] {
                    new CustomerReference()
                };
                request.RequestedShipment.RequestedPackageLineItems[0].CustomerReferences[0].CustomerReferenceType = CustomerReferenceType.CUSTOMER_REFERENCE;
                request.RequestedShipment.RequestedPackageLineItems[0].CustomerReferences[0].Value = "CustomerReference";
            }
        }