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); }
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); }
private void extractText(string text) { var reader = new QrDataObject(text); var(targetSegment, other) = extractSegments(reader); segments.Add(targetSegment); if (!string.IsNullOrWhiteSpace(other)) { extractText(other); } }
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); } }
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); }
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); }