示例#1
0
        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;
                }
            }
        }