Exemple #1
0
        private JsonDataMap getByNamespace(IInstrumentation instr)
        {
            var data = new JsonDataMap();

            IEnumerable <Type> typeKeys = instr.DataTypes.OrderBy(t => t.FullName);

            foreach (var tkey in typeKeys)
            {
                Datum datum      = null;
                var   sourceKeys = instr.GetDatumTypeSources(tkey, out datum).OrderBy(s => s);
                if (datum == null)
                {
                    continue;
                }

                var tData = new JsonDataMap();
                tData["data"] = sourceKeys;

                tData["descr"] = datum.Description;
                tData["unit"]  = datum.ValueUnitName;
                tData["error"] = datum is IErrorInstrument;
                tData["gauge"] = datum is Gauge;

                data.Add(tkey.FullName, tData);
            }

            return(data);
        }
Exemple #2
0
        private JsonDataMap getByInterface(IInstrumentation instr)
        {
            var data = new JsonDataMap();

            var sortedTypes = instr.DataTypes.OrderBy(t => t.FullName);

            IEnumerable <Type> intfKeys = instr.DataTypes.SelectMany(t => Datum.GetViewGroupInterfaces(t)).Distinct().OrderBy(ti => ti.FullName);

            foreach (var ikey in intfKeys)
            {
                var iData = new JsonDataMap();

                IEnumerable <Type> typeKeys = sortedTypes.Where(t => Datum.GetViewGroupInterfaces(t).Any(i => i == ikey));
                foreach (var tkey in typeKeys)
                {
                    Datum datum      = null;
                    var   sourceKeys = instr.GetDatumTypeSources(tkey, out datum);
                    if (datum == null)
                    {
                        continue;
                    }

                    var tData = new JsonDataMap();
                    tData["descr"] = datum.Description;
                    tData["unit"]  = datum.ValueUnitName;
                    tData["error"] = datum is IErrorInstrument;
                    tData["gauge"] = datum is Gauge;
                    tData["data"]  = sourceKeys;

                    iData.Add(tkey.FullName, tData);
                }

                data.Add(ikey.Name, iData);
            }

            return(data);
        }