using MultiTerm.Core.ViewModel; using System.Text; namespace MultiTerm.Core.Helpers; public static class ByteDataViewModelHelpers { public static string GetCharacterStringOfBytesDataViewModels(IEnumerable collection) { StringBuilder stringBuilder = new StringBuilder(); int prevLineIdentifier = collection.First().LineIdentifier; foreach (var item in collection) { // add newline if line identifier increased if(item.LineIdentifier > prevLineIdentifier) { stringBuilder.Append(Environment.NewLine); } prevLineIdentifier = item.LineIdentifier; // add item as character stringBuilder.Append(item.DisplayStringChar); } return stringBuilder.ToString(); } public static string GetHexadecimalStringOfBytesDataViewModels(IEnumerable collection) { StringBuilder stringBuilder = new StringBuilder(); int prevLineIdentifier = collection.First().LineIdentifier; foreach (var item in collection) { // add newline if line identifier increased if (item.LineIdentifier > prevLineIdentifier) { stringBuilder.Append(Environment.NewLine); } prevLineIdentifier = item.LineIdentifier; // add item as hex byte stringBuilder.Append(item.DisplayStringHex); // add spacing if it is not the last item if (item != collection.Last()) { stringBuilder.Append(' '); } } return stringBuilder.ToString(); } public static string GetBinaryStringOfEBytesDataViewModels(IEnumerable collection) { StringBuilder stringBuilder = new StringBuilder(); int prevLineIdentifier = collection.First().LineIdentifier; foreach (var item in collection) { // add newline if line identifier increased if (item.LineIdentifier > prevLineIdentifier) { stringBuilder.Append(Environment.NewLine); } prevLineIdentifier = item.LineIdentifier; // add item as binary byte stringBuilder.Append(item.DisplayStringBin); // add spacing if it is not the last item if (item != collection.Last()) { stringBuilder.Append(' '); } } return stringBuilder.ToString(); } }