private void GetChannelUnitMap(List <SensorHistoryRecord> firstResponse) { channelUnitMap = new ChannelUnitMap(); var first = firstResponse.FirstOrDefault(); if (first != null) { foreach (var channel in first.ChannelRecords) { if (cmdlet.Raw) { channelUnitMap[channel.Name] = null; continue; } var unitValueChannel = firstResponse .SelectMany(r => r.ChannelRecords .Where(v => v.Name == channel.Name && !string.IsNullOrEmpty(v.DisplayValue)) ).FirstOrDefault(); var unitValue = unitValueChannel?.DisplayValue; if (unitValue != null) { if (IsValueLookup(unitValue)) { unitValue = null; } else { if (unitValue.StartsWith("< ") || unitValue.StartsWith("> ")) { var firstIndex = unitValue.IndexOf(' ') + 1; var secondIndex = unitValue.IndexOf(' ', firstIndex) + 1; unitValue = unitValue.Substring(secondIndex).Trim(); } else { if (unitValue.ToCharArray().Count(c => c == ' ') <= 1 && !IsTimeSpan(unitValueChannel)) { unitValue = unitValue.Substring(unitValue.IndexOf(' ') + 1).Trim(); } else { unitValue = null; } } } } channelUnitMap[channel.Name] = unitValue; } } }
private void GetChannelUnitMap(List <SensorHistoryData> firstResponse) { channelUnitMap = new ChannelUnitMap(); var first = firstResponse.FirstOrDefault(); if (first != null) { foreach (var channel in first.ChannelRecords) { var unitValue = firstResponse .SelectMany(r => r.ChannelRecords .Where(v => v.Name == channel.Name && !string.IsNullOrEmpty(v.Value)) .Select(v2 => v2.Value) ).FirstOrDefault(); if (unitValue != null) { if (IsValueLookup(unitValue)) { unitValue = null; } else { if (unitValue.StartsWith("< ") || unitValue.StartsWith("> ")) { var firstIndex = unitValue.IndexOf(' ') + 1; var secondIndex = unitValue.IndexOf(' ', firstIndex) + 1; unitValue = unitValue.Substring(secondIndex).Trim(); } else { unitValue = unitValue.Substring(unitValue.IndexOf(' ') + 1).Trim(); } } } channelUnitMap[channel.Name] = unitValue; } } }