Esempio n. 1
0
        private (QrDataObject, string) extractSegments(QrDataObject data)
        {
            var currentValue = $"{data.Id}{data.LengthCode}{data.Value.Substring(0, data.Length)}";
            var firstSegment = new QrDataObject(currentValue);
            var other        = data.RawValue.Substring(currentValue.Length);

            return(firstSegment, other);
        }
Esempio n. 2
0
        public void CorrectQrDataObject(string rawValue, string expectedId, string expectedLength, string expectedValue)
        {
            var sut = new QrDataObject(rawValue);

            sut.RawValue.Should().BeEquivalentTo(rawValue);
            sut.Id.Should().BeEquivalentTo(expectedId);
            sut.LengthCode.Should().BeEquivalentTo(expectedLength);
            sut.Value.Should().BeEquivalentTo(expectedValue);
        }
Esempio n. 3
0
        private void extractText(string text)
        {
            var reader = new QrDataObject(text);

            var(targetSegment, other) = extractSegments(reader);
            segments.Add(targetSegment);
            if (!string.IsNullOrWhiteSpace(other))
            {
                extractText(other);
            }
        }
Esempio n. 4
0
        protected virtual void ExtractText(string text)
        {
            var reader = new QrDataObject(text);

            var(targetSegment, other) = ExtractSegments(reader);
            Segments.Add(targetSegment);
            if (!string.IsNullOrWhiteSpace(other))
            {
                ExtractText(other);
            }
        }
Esempio n. 5
0
        private (IQrDataObject, string) extractSegments(IQrDataObject data)
        {
            if (!int.TryParse(data.Length, out int length))
            {
                throw new ArgumentException("LengthCode isn't valid.");
            }
            var currentValue = $"{data.Id}{data.Length}{data.Value.Substring(0, length)}";
            var firstSegment = new QrDataObject(currentValue);
            var other        = data.RawValue.Substring(currentValue.Length);

            return(firstSegment, other);
        }
Esempio n. 6
0
        public QrBuilder Add(string rawData)
        {
            var isArgumentValid = !string.IsNullOrWhiteSpace(rawData) &&
                                  rawData.Length >= emv.MinContentLength;

            if (!isArgumentValid)
            {
                throw new ArgumentException("Invalid data");
            }

            var data = new QrDataObject(rawData);

            removeOldRecordIfExists(data.Id);
            qrDataObjects.Add(data);
            return(this);
        }